pyplot模块的基本用法
前言
Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形(来自:百度百科)。pyplot 模块是 Matplotlib 模块提供的快速绘图模块,它模仿了 MATLAB 的部分功能。在本文中主要介绍 pyplot 模块的基本用法,会进行持续的更新,欢迎各位读者朋友点赞收藏。
正文
1、导入pyplot模块
import matplotlib.pyplot as plt # 导入pyplot模块
2、plt.plot()方法绘制图像
-
传入一个参数绘制图像
import matplotlib.pyplot as plt plt.plot([1, 3, 4, 6]) # 如果只传入一个数组作为参数, matplotlib 认为是 Y 轴的坐标 plt.show()
注意:- 如果只传入一个数组作为参数, Matplotlib 认为是 Y 轴的坐标并自动生成 x 值。 由于 Python 范围从 0 开始,默认 x 向量具有与 y 相同的长度,但从 0 开始。因此 x 数据是 [0,1,2,3]。
- plt.show() 函数:默认情况下,matplotlib.pyplot 不会直接显示图像,只有调用 plt.show() 函数时,图像才会显示出来,类似 print() 函数。plt.show() 默认是在新窗口打开一幅图像,并且提供了对图像进行操作的按钮。
-
传入两个参数绘制图像
import matplotlib.pyplot as plt plt.plot([1, 3, 4, 6], [2, 5, 10, 12]) plt.show()
-
plt.plot() 参数设置
-
设置线条颜色:
color = ' '
或c = ' '
import matplotlib.pyplot as plt plt.plot([1, 3, 4, 6], [2, 5, 10, 12],c='black') # 设置线条颜色为黑色 plt.show()
Matplotlib 支持的颜色缩写:字符 字符 ‘b’ 蓝色 ‘c’ 青色 ‘k’ 黑色 ‘g’ 绿色 ‘m’ 洋红 ‘w’ 白色 ‘r’ 红色 ‘y’ 黄色 -
设置线条风格:
linestyle = ' '
或ls = ' '
import matplotlib.pyplot as plt plt.plot([1, 3, 4, 6], [2, 5, 10, 12],ls='--') # 设置线条风格为虚线 plt.show()
Matplotlib 支持的控制线条样式格式字符串:
字符 描述 字符 描述 ‘-’ 实线 ‘–’ 虚线 ‘-.’ 点划线 ‘:’ 点虚线 ‘.’ 点 ‘,’ 像素 ‘o’ 圆圈 ‘v’ 下三角 ‘^’ 上三角 ‘<’ 左三角 ‘>’ 右三角 ‘1’ 1 加下三角 ‘2’ 1加上三角 ‘3’ 1 加左三角 ‘4’ 1加右三角 ‘s’ 正方形 ‘p’ 五边形 ‘*’ 星形 ‘h’ 六角形1 ‘H’ 六角形2 ‘+’ 加号 ‘x’ 乘号 ‘D’ 钻石 ‘d’ 菱形 -
设置线条宽度:
linewidth= ' '
或lw= ' '
import matplotlib.pyplot as plt plt.plot([1, 3, 4, 6], [2, 5, 10, 12],lw=3) # 设置线条宽度为3 plt.show()
-
设置线条透明度:
alpha=0.5
0-1范围内的浮点数import matplotlib.pyplot as plt plt.plot([1, 3, 4, 6], [2, 5, 10, 12],alpha=0.2) # 设置线条透明度为0.2 plt.show()
-
3、plt.plot()方法添加描述信息
-
添加图片标题:
plt.title("")
-
添加轴标签:
plt.xlabel('')
&plt.ylabel('')
-
设置显示中文字符:Matplotlib 的缺省字体不支持中文,所以要指定一个支持中文的字体
plt.rcParams['font.sans-serif']=['Microsoft Yahei'] # 设定字体为微软雅黑
属性值 说明 SimHei 中文黑体 Kaiti 中文楷体 Lisu 中文隶书 FangSong 中文仿宋 YouYuan 中文幼圆 STSong 华文宋体 import matplotlib.pyplot as plt plt.title("折线图") # 设定图片标题 plt.ylabel('Y轴') # 设置Y轴标签 plt.xlabel('Time') # 设置X轴标签 plt.rcParams['font.sans-serif'] = ['Microsoft Yahei'] # 设定字体为微软雅黑 plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1) plt.show()
如果不设置中文字符:
运行时也会有 Warning 提示:UserWarning: Glyph 36724 (\N{CJK UNIFIED IDEOGRAPH-8F74}) missing from current font.
4、plt.lim()方法设置坐标轴取值范围
-
设置横坐标轴取值范围:
plt.xlim(xmin=1, xmax=10)
-
设置纵坐标轴取值范围:
plt.ylim(ymin=2, ymax=15)
import matplotlib.pyplot as plt plt.title("折线图") # 设定字体为微软雅黑 plt.ylabel('Y轴') # 设置Y轴标签 plt.xlabel('Time') # 设置X轴标签 plt.xlim(xmin=1, xmax=10) plt.ylim(ymin=2, ymax=15) plt.rcParams['font.sans-serif'] = ['Microsoft Yahei'] plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1) plt.show()
5、plt.ticks()方法设置坐标轴刻度范围
- 设置横坐标轴刻度范围:
plt.xticks(ticks, labels, rotation=90, fontsize=12)
- 设置纵坐标轴刻度范围:
plt.yticks(ticks, labels, rotation=90, fontsize=12)
参数介绍:
1. ticks 是一个 list,对应的是轴刻度,可以是小数可以是整数,ticks 不指定的位置不显示刻度;
2. labels 是一个 list,长度和 ticks 相等,内容是想要在对应刻度显示的内容;
3. rotation 是刻度内容旋转角度;
4. fontsize 设置刻度值的字体大小。import matplotlib.pyplot as plt plt.title("折线图") # 设定字体为微软雅黑 plt.ylabel('Y轴') # 设置Y轴标签 plt.xlabel('Time') # 设置X轴标签 plt.xlim(xmin=1, xmax=10) plt.ylim(ymin=2, ymax=15) plt.rcParams['font.sans-serif'] = ['Microsoft Yahei'] # 设置显示中文字体 plt.xticks(list(range(1, 15,2)),rotation=0, fontsize=12) # 调整刻度范围和刻度标签 plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1) plt.show()
6、plt.grid()方法绘制网格线
绘制网格线:plt.grid(alpha=0.4)
,可以指定网格线的透明度。
import matplotlib.pyplot as plt
plt.title("折线图") # 设定字体为微软雅黑
plt.ylabel('Y轴') # 设置Y轴标签
plt.xlabel('Time') # 设置X轴标签
plt.xlim(xmin=1, xmax=10) # 设置x轴范围
plt.ylim(ymin=2, ymax=15) # 设置y轴范围
plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']
plt.xticks(list(range(1, 15, 2)), rotation=0, fontsize=12) # 调整x轴刻度范围
plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1)
plt.grid(alpha=0.4) # 绘制网格,透明度为0.4
plt.show()
7、plt.axhline()方法绘制平行于 坐标轴的水平参考线
绘制平行于 x 轴的水平参考线axhline():plt.axhline(y, c, ls, lw, label)
绘制平行于 y 轴的水平参考线axvline():plt.axvline(x, c, ls, lw, label)
参数介绍:
- x&y:x&y轴的坐标;
- c:参考线的颜色;
- ls:参考线的风格;
- lw:参考线的宽度;
- label:参考线的名称。
import matplotlib.pyplot as plt
plt.title("折线图") # 设定字体为微软雅黑
plt.ylabel('Y轴') # 设置Y轴标签
plt.xlabel('Time') # 设置X轴标签
plt.xlim(xmin=1, xmax=10) # 设置x轴范围
plt.ylim(ymin=2, ymax=15) # 设置y轴范围
plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']
plt.xticks(list(range(1, 15, 2)), rotation=0, fontsize=12) # 调整x轴刻度范围
plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1)
plt.grid(alpha=0.4) # 绘制网格,透明度为0.4
plt.axhline(5, color='green', lw=2, label="分割线") # 绘制平行于x轴的水平参考线,绿色,名称为分割线
plt.show()
8、plt.axvspan()方法绘制垂直于坐标轴的参考区域
绘制垂直于 x 轴的参考区域:plt.axvspan( xmin, xmax ,facecolor, alpha)
绘制垂直于 y 轴的参考区域:plt.axhspan( ymin, ymax ,facecolor, alpha)
参数介绍:
- xmin&ymin:参考区域的起始位置;
- xmax&ymax:参考区域的终止位置;
- facecolor:参考区域的填充颜色;
- alpha:参考区域填充颜色的透明度,[0~1]。
import matplotlib.pyplot as plt
plt.title("折线图") # 设定字体为微软雅黑
plt.ylabel('Y轴') # 设置Y轴标签
plt.xlabel('Time') # 设置X轴标签
plt.xlim(xmin=1, xmax=10) # 设置x轴范围
plt.ylim(ymin=2, ymax=15) # 设置y轴范围
plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']
plt.xticks(list(range(1, 15, 2)), rotation=0, fontsize=12) # 调整x轴刻度范围
plt.plot([1, 3, 4, 6], [2, 5, 10, 12], alpha=1)
plt.grid(alpha=0.4) # 绘制网格,透明度为0.4
plt.axhline(5, color='green', lw=2, label="分割线") # 绘制平行于x轴的水平参考线,绿色,名称为分割线
plt.axvspan(xmin=2,xmax=5,facecolor='r',alpha=0.2) # 绘制垂直于x轴的参考区域
plt.show()