一、基础流程
1.导入基础模块
import numpy as np
import mathplotlib.pyplot as plt
2.创建画布与创建子图
pic = plt.figure(figsize=(8,8),dpi=80) //8*8是尺寸,dpi是像素值
ax1=pic.add_subplot(2,2,1) //2*2图形阵,选择第1张图片
绘制如下:
3.添加画布内容,以下为图像的基本函数级作用
函数名称 | 函数作用 |
title | 在图形中添加标题,可以指定标题的名称、位置、颜色、字体大小 |
xlabel | 在图形中添加x轴的名称,可以指定位置、颜色、字体大小 |
ylabel | 在图形中添加x轴的名称,可以指定位置、颜色、字体大小 |
xlim | 图形x轴的范围,只能确定一个数值区间,无法使用字符串标识 |
ylim | 图形y轴的范围,只能确定一个数值区间,无法使用字符串标识 |
xticks | x轴刻度的数目与取值 |
yticks | y轴刻度的数目与取值 |
legend | 图形图例,可以指定图例大小,位置,标签 |
二、基础绘图
2.1
#无子图的绘图
x=[2,3,5]
y=[1,2,6] #数据
plt.title('line') # 名称
plt.xlabel('x') #x轴
plt.ylabel('y') #y轴
plt.plot(x,y) #函数用于对图形进行一些更改
plt.show() #显示所有打开的图形。
2.2 scatter(x,y)函数用于生成一个scatter散点图。
#有一图以上的绘图
t = plt.figure(figsize=(5,6),dpi=80)
#添加另外一张图
ax1= t.add_subplot(2,1,1) #生成一个2*1的第一个图形
plt.plot(x,y)
ax2= t.add_subplot(2,1,2) #生成一个2*1的第二个图形
plt.scatter(x,y) #函数用于生成一个scatter散点图。
2.3 散点图和折线图重合
x=[2,3,5]
y=[1,2,6] #数据
plt.title('line') # 名称
plt.xlabel('x') #x轴
plt.ylabel('y') #y轴
plt.plot(x,y) #函数用于对图形进行一些更改
plt.scatter(x,y) #函数用于生成一个scatter散点图。
plt.show() #显示所有打开的图形。
(加多一句scatter让散点图和折线图重合)
2.4 plt.text()标签
x=[2,3,5]
y=[1,2,6] #数据
plt.title('line') # 名称
plt.xlabel('x') #x轴
plt.ylabel('y') #y轴
plt.plot(x,y) #函数用于对图形进行一些更改
plt.scatter(x,y) #函数用于生成一个scatter散点图。
plt.text(4,2,'y=x') #写一个标签
plt.show() #显示所有打开的图形。
2.5 plt.style.use() 更改样式风格
#如若不知道有什么值可以打print(plt.style.available)来获取值
#['Solarize_Light2', '_classic_test_patch', '_mpl-gallery', '_mpl-gallery-nogrid', 'bmh', 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn-v0_8', 'seaborn-v0_8-bright', 'seaborn-v0_8-colorblind', 'seaborn-v0_8-dark', 'seaborn-v0_8-dark-palette', 'seaborn-v0_8-darkgrid', 'seaborn-v0_8-deep', 'seaborn-v0_8-muted', 'seaborn-v0_8-notebook', 'seaborn-v0_8-paper', 'seaborn-v0_8-pastel', 'seaborn-v0_8-poster', 'seaborn-v0_8-talk', 'seaborn-v0_8-ticks', 'seaborn-v0_8-white', 'seaborn-v0_8-whitegrid', 'tableau-colorblind10']
x=[2,3,5]
y=[1,2,6] #数据
plt.title('line') # 名称
plt.xlabel('x') #x轴
plt.ylabel('y') #y轴
plt.plot(x,y) #函数用于对图形进行一些更改
plt.scatter(x,y) #函数用于生成一个scatter散点图。
plt.text(4,2,'y=x') #写一个标签
plt.style.use('classic') #用了style里面的classic这个值来改变图形样式
plt.show() #显示所有打开的图形。
三、rc参数
rc函数可以一次性设置多个绘图参数,如图的尺寸、线条样式、字体等。它接受一个字典作为参数,字典的键为参数名,值为参数的值。
3.1 rc参数解释
3.2 取值参考
3.3 lines
#有一图以上的绘图
t = plt.figure(figsize=(2,3),dpi=80)
#添加另外一张图
ax1= t.add_subplot(2,1,1) #生成一个2*1的第一个图形
plt.rcParams['lines.linestyle'] = '--'
plt.plot(x,y)
ax2= t.add_subplot(2,1,2) #生成一个2*1的第二个图形
plt.scatter(x,y) #函数用于生成一个scatter散点图。
3.4 axes
x = np.linspace(0,16,1000)
plt.plot(x,np.tan(x))
plt.rcParams['axes.edgecolor']= 'r' #轴颜色
plt.rcParams['axes.grid']=True #网格
plt.rcParams['axes.spines.left']=False #去左侧轴
plt.rcParams['axes.spines.right']=False #去右侧轴
plt.show()
3.5散点图(scatter)
scatter函数的常用参数包括:
- x:表示散点图中每个点的x坐标,可以是一个一维数组。
- y:表示散点图中每个点的y坐标,可以是一个一维数组。
- s:表示散点的大小,默认值是20。可以是一个标量,表示所有散点的大小相同;也可以是一个一维数组,表示每个散点的大小不同;还可以是一个二维数组,表示每个散点的宽度和高度不同。
- c:表示散点的颜色,默认值是'blue'。可以是一个颜色字符串,如'red'、'green'、'blue'等;也可以是一个一维数组,表示每个散点的颜色不同;还可以是一个二维数组,表示每个散点的颜色不同(使用一个映射函数将数值映射到颜色)。
- marker:表示散点的形状,默认值是'o'。可以是一个形状字符串,如'o'、'*'、'+'、'x'等;也可以是一个一维数组,表示每个散点的形状不同。
- alpha:表示散点的透明度,默认值是1(不透明)。可以是一个标量,表示所有散点的透明度相同;也可以是一个一维数组,表示每个散点的透明度不同。
- edgecolors:表示散点的边缘颜色,默认值是'face'(与散点的颜色相同)。可以是一个颜色字符串,如'red'、'green'、'blue'等;也可以是一个一维数组,表示每个散点的边缘颜色不同。
- cmap:表示散点的颜色映射,默认值是None(不使用颜色映射)。可以是一个colormap对象,如matplotlib.cm.jet、matplotlib.cm.rainbow等。
以上只是常用参数的一部分,scatter函数还有其他参数用于设置散点图的各种属性。更多信息可以参考matplotlib官方文档。
import matplotlib.pyplot as plt
# 准备数据
x = [1, 2, 3, 4, 5]
y = [10, 15, 7, 12, 9]
# 使用scatter函数绘制散点图
plt.scatter(x, y)
# 设置图表标题、坐标轴标签等
plt.title("Scatter Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 显示图表
plt.show()
3.6折线图
在使用plt.plot()
绘制折线图时,可以通过传递不同的参数来对折线进行定制。以下是常用的一些参数:
x
:横轴数据的序列。y
:纵轴数据的序列。color
:指定折线的颜色。可以使用颜色名称(如'red'、'blue')或十六进制颜色码(如'#FF0000'、'#0000FF')。linewidth
:指定折线的线条宽度。linestyle
:指定折线的线条样式。常见的样式包括实线、虚线、点线等。例如,'-'表示实线,'--'表示虚线,':'表示点线。marker
:指定折线上的标记点样式。常见的样式包括圆圈、方块、三角形等。例如,'o'表示圆圈,'s'表示方块,'^'表示三角形。markersize
:指定标记点的大小。label
:指定折线的标签,用于图例的显示。alpha
:指定折线的透明度,范围从0(完全透明)到1(完全不透明)。linestyle
:指定折线的线条样式。markeredgecolor
:指定标记点的边框颜色。markeredgewidth
:指定标记点的边框宽度。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5] # 横轴数据
y = [10, 24, 36, 40, 22] # 纵轴数据
plt.plot(x, y)
plt.rcParams['font.sans-serif']='SimHei'
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('折线图')
plt.show()
3.7直方图与条形图
plt.hist()
函数绘制直方图时,可以根据需要传递不同的参数来定制直方图的样式。以下是一些常用的参数:
x
:要绘制直方图的数据序列。bins
:指定直方图的柱子数量或间隔。range
:指定直方图的值范围。color
:指定直方图的颜色。alpha
:指定直方图的透明度。edgecolor
:指定柱子边界的颜色。linewidth
:指定柱子边界的宽度。density
:是否将直方图标准化为概率密度。cumulative
:是否绘制累积直方图。orientation
:指定直方图的方向,可以是'horizontal'(水平)或'vertical'(垂直)。histtype
:指定直方图的类型,可以是'bar'(条形直方图)或'step'(阶梯状直方图)。
import matplotlib.pyplot as plt
# 数据序列
x = [1, 2, 2, 3, 3, 3, 4, 4, 5, 6, 6, 6, 6, 7, 8]
# 绘制直方图
plt.hist(x, bins=5, range=(1, 8), color='blue', alpha=0.7, edgecolor='black', linewidth=1.2, density=True, cumulative=False, orientation='vertical', histtype='bar')
# 添加轴标签和标题
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')
# 展示图表
plt.show()
3.8饼图
绘制饼图时可以使用以下参数进行定制:
- x:表示饼图的数据序列,必需参数。
- labels:饼图各部分的标签,可选参数。
- colors:饼图各部分的颜色,可选参数。
- autopct:在饼图上显示每个扇形的百分比格式,可选参数。
- explode:突出显示某个或多个扇形,可选参数。
- startangle:饼图开始绘制的角度,可选参数。
- shadow:是否添加阴影效果,可选参数。
- pctdistance:百分比标签离圆心的距离,可选参数。
- labeldistance:标签离圆心的距离,可选参数。
- radius:饼图的半径,可选参数。
- center:饼图的中心位置,可选参数。
- frame:是否将饼图添加到一个矩形框中,可选参数。
- wedgeprops:设置扇形的属性,可选参数。
- textprops:设置标签的属性,可选参数。
- centerprops:设置中心文本的属性,可选参数。
- edgecolor:扇形边界的颜色,可选参数。
- linewidth:扇形边界的宽度,可选参数。
这些参数可以根据具体的需求进行调整,以绘制符合自己要求的饼图。
饼图
import matplotlib.pyplot as plt
# 饼图数据
sizes = [30, 25, 20, 15, 10]
labels = ['A', 'B', 'C', 'D', 'E']
# 绘制饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%', colors=['red', 'blue', 'green', 'yellow', 'purple'], startangle=90)
# 添加图例
plt.legend()
# 添加标题
plt.title('Pie Chart')
# 展示图表
plt.show()
3.9箱线图
箱线图是一种用于显示数据分布情况的可视化图表。它包含以下参数:
-
数据集:箱线图是基于一组数据集绘制的,这些数据可以是连续或离散的数值。
-
最小值(Min):数据集中的最小值。
-
第一四分位数(Q1):数据集中所有数据按大小顺序排列后,位于25%位置的值。
-
中位数(Median):数据集中所有数据按大小顺序排列后,位于50%位置的值。
-
第三四分位数(Q3):数据集中所有数据按大小顺序排列后,位于75%位置的值。
-
最大值(Max):数据集中的最大值。
-
四分位距(IQR):Q3和Q1之间的差值,用于衡量数据的离散度。
-
异常值(Outliers):位于箱线图上下线之外的值,可能表明数据集中存在异常情况。
-
上界(Upper Whisker):一般为Q3加上1.5倍的IQR,用于标记数据集的上边界。
-
下界(Lower Whisker):一般为Q1减去1.5倍的IQR,用于标记数据集的下边界。
这些参数可以帮助人们了解数据的集中趋势、离散程度以及是否存在异常值。箱线图通常用于比较不同数据集之间的差异或识别数据集中的异常情况。
import matplotlib.pyplot as plt
data = [10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60]
plt.boxplot(data)
plt.xlabel('Data')
plt.ylabel('Value')
plt.title('Boxplot of Data')
plt.show()