matplotlib制图
一张图内包含多条曲线
x = np.linspace(0, 2, 100)
plt.plot(x, x, label='linear') # x, y, label name
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend() # 添加图例
# plt.savefig("plot.jpg")
# plt.show()
![](https://matplotlib.org/stable/_images/sphx_glr_usage_004.png)
⚠️ show()
之后会创建新的空白图形,在show()
之后保存图片会得到空白图片。
将多条曲线放到不同子图
有时将所有曲线放到一张图中略显混乱,这时可以用subplot
或subplots
创建子图。
subplot
x = np.linspace(0, 2, 100)
plt.subplot(3, 1, 1)
plt.plot(x, x)
plt.ylabel('y1')
plt.subplot(3, 1, 2)
plt.plot(x, x**2)
plt.ylabel('y2')
plt.subplot(3, 1, 3)
plt.plot(x, x**3)
plt.ylabel('y3')
plt.xlabel('x label')
plt.savefig("subplot.jpg")
plt.show()
subplot(3, 1, 1)
的作用是创建3行1列的子图,并把当前绘制位置设置为第一个子图。
此时plot()
的标签加不加都行,因为在子图模式下加legend和title只会加到当前绘制位置的子图。
每个子图需要自己的ylabel。
subplots
figure, ax