matplotlib 绘图库

matplotlib是一个功能强大的绘图库,pyplot是matplotlib的一个子库,,提供了和 MATLAB 类似的绘图 API。

Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。

Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。

我们通常这样导入matplotlib.pyplot

1
2
import matplotlib.pyplot as plt
import matplotlib

我们常把matplotlib与numpy和scipy一起使用

1
import numpy as np

绘制线图和散点图:plot()

1
2
3
4
# 画单条线
plot([x], y, [fmt], *, data=None, **kwargs)
# 画多条线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
  • x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数+ 据,数据可以列表或数组。
  • fmt:可选,定义基本格式(如颜色、标记和线条样式)。
  • **kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。

我们可以配合numpy.linspace()函数来容易地绘制出函数图像

1
2
3
4
5
xpoints = np.linspace(0,20,100)
ypoints = [np.sin(x) for x in xpoints]
plt.plot(xpoints, ypoints,'r+')

plt.show()

png

1
2
3
plt.plot(xpoints, ypoints,'r-',linewidth=5)

plt.show()

png

以上两个图是对plot()中fmt参数的演示

颜色字符:‘b’ 蓝色,‘m’ 洋红色,‘g’ 绿色,‘y’ 黄色,‘r’ 红色,‘k’ 黑色,‘w’ 白色,‘c’ 青绿色,‘#008000’ RGB 颜色符串。多条曲线不指定颜色时,会自动选择不同颜色。
线型参数:‘‐’ 实线,‘‐‐’ 破折线,‘‐.’ 点划线,‘:’ 虚线。
标记字符:‘.’ 点标记,‘,’ 像素标记(极小点),‘o’ 实心圈标记,‘v’ 倒三角标记,‘^’ 上三角标记,‘>’ 右三角标记,‘<’ 左三角标记…等等

把以上三个参数组合成字符串填到fmt中就行了,如"bo",“r+”,“g–”

Matplotlib 轴标签和标题

我们可以使用 xlabel() 和 ylabel() 方法来设置 x 轴和 y 轴的标签,用title()方法来设置标题

以上参数默认不支持中文,但我们可以通过
zhfont1 = matplotlib.font_manager.FontProperties(fname="../fonts/SourceHanSansSC-Medium.otf")来设置中文字体。这里我用的是思源宋体

1
2
3
4
5
6
7
8
zhfont1 = matplotlib.font_manager.FontProperties(fname="../../fonts/SourceHanSansSC-Medium.otf")


plt.plot(xpoints, ypoints,'r-',linewidth=2)
plt.xlabel('x轴',fontproperties=zhfont1)
plt.ylabel('y=sin(x)')
plt.title('y=sin(x)')
plt.show()

png

这就是用matplotlib绘制图像的基本方法,下一期我会写一写如何用matplotlib提供的figure和axes类更好地自定义我们的图像。