前言
Matplotlib 是支持 Python 语言的开源绘图库,简单且完善。
一、环境配置
1.环境设置
- 在 Notebook 环境绘图时,需先运行
%matplotlib inline
命令,将绘制图形嵌入当前页面。 - 在桌面环境绘图,无需上述命令,而是在全部绘图代码后追加
plt.show()
。
2.模块导入
使用 Matplotlib 面向对象 API,需导入 pyplot
模块并约定简称为 plt
,即
from matplotlib import pyplot as plt
pyplot
是 Matplotlib 最核心模块,用于绘制几乎所有样式的 2D 图形。
二、绘图
1.折线图绘制:
plt.plot()
是pyplot
模块下绘制折线图的方法。若只传入一个列表,Matplotlib 会默认将其作为y
值,x
值从0
开始依次递增。- 若要自定义横坐标值,可传入两个列表,如
plt.plot([x 值列表], [y 值列表])
。
2.其他简单图形绘制:
- 正弦曲线图:通过
numpy
模块生成数据,plt.plot(X, y)
绘制,虽看起来像曲线,但实际两点间为直线,因样本点间距小。如:
import numpy as np
X = np.linspace(-2*np.pi, 2*np.pi, 1000)
y = np.sin(X)
plt.plot(X, y)
- 柱状图:使用
matplotlib.pyplot.bar(*args, **kwargs)
方法,如plt.bar([x 值列表], [y 值列表])
。
- 散点图:用
matplotlib.pyplot.scatter(*args, **kwargs)
方法,适合绘制如 GPS 采集数据点等。示例:
import numpy as np
X = np.random.ranf(1000)
y = np.random.ranf(1000)
plt.scatter(X, y)
- 饼状图:利用
matplotlib.pyplot.pie(*args, **kwargs)
方法,在有限列表以百分比呈现时有用,能清晰展示类别间大小关系及占比,如plt.pie([值列表])
。
- 量场图:使用
matplotlib.pyplot.quiver(*args, **kwargs)
方法,由向量组成,在气象学等领域广泛应用,如X, y = np.mgrid[0:10, 0:10]; plt.quiver(X, y)
。
- 等高线图:使用
matplotlib.pyplot.contourf(*args, **kwargs)
方法,绘制过程稍复杂,需先生成网格矩阵并计算等高线值,如:
import numpy as np
x = np.linspace(-5, 5, 500)
y = np.linspace(-5, 5, 500)
X, Y = np.meshgrid(x, y)
Z = (1 - X / 2 + X ** 3 + Y ** 4) * np.exp(-X ** 2 - Y ** 2)
plt.contourf(X, Y, Z)
更多绘图方法
Matplotlib 的 pyplot
模块还包含如 matplotlib.pyplot.angle_spectrum
(绘制电子波谱图)、matplotlib.pyplot.barh
(绘制直方图)、matplotlib.pyplot.broken_barh
(绘制水平直方图)等多种绘图方法,可参考官方文档获取更多详细信息。