无法播放?请 点击这里 跳转到Youtube
切换视频源:

Matplotlib中每个单独的窗口叫做Figure,窗口中可以有不同的图片(axes):

本章我们就来学习4种画figure的方法,首先我们导入matplotlib.pyplot和numpy:

import matplotlib.pyplot as plt
import numpy as np

然后我们生成一些画图需要的数据:

x1 = np.linspace(-5, 5, 50) # 50个范围在(-5, 5)之间的等分点
y1 = 2 * x1
y2 = x1 ** 2 - 10

方法1

最简单的方法就是直接使用plt.plot函数,就能画出一个图片:

plt.plot(x1, y1)

因为plt.plot也会返回一个object,所以才会显示[<matplotlib….]

如果只想显示图片,则可以使用plt.show():

plt.plot(x1, y1)
plt.show()

然后figure的大小和曲线的属性也是可以自定义的:

plt.figure(figsize = (5, 5)) # 图像窗口大小设为宽为5,高为5
plt.plot(x1, y1)
plt.plot(x1, y2, color="green", linewidth=3.0, linestyle='--') # 曲线颜色为绿色,宽度为3.0,类型为虚线
plt.show()

如果要将图片保存到本地,可以使用plt.savefig函数:

plt.figure(figsize = (5, 5)) 
plt.plot(x1, y1)
plt.plot(x1, y2, color="green", linewidth=3.0, linestyle = "--")
plt.savefig("./images/2-1.png") # 将图像保存到本地

方法2

第2种方法就是使用 subplots 拿到图片的object,然后在上面成图 :

fig, axe = plt.subplots()
axe.plot(x1, y1)
axe.plot(x1, y2)
plt.show()

方法3

如果想要在一个窗口中画多个图片,可以使用subplot函数:

plt.figure(figsize = (10, 4)) # 10为宽,4为高

plt.subplot(1, 2, 1) # (nRows, nColumns, axes number to plot):1行,2列,第一个图片
plt.plot(x1, y1)

plt.subplot(1, 2, 2) # 1行,2列,第二个图片
plt.plot(x1, y2)

plt.show()

方法4

第4种方法就是先创建一个figure,然后往其中加子图像:

fig = plt.figure()
plot = fig.add_subplot(121) # (nRows, nColumns, axes number to plot):1行,2列,第一个图片
x = np.linspace(-10, 10, 100) # 新的 x points
y = np.sin(x) # 新的 y points
plot.plot(x, y)

plot = fig.add_subplot(122) # (1行,2列,第二个axes)
plot.plot(x1, y2)

plt.show()
fig.savefig("./images/2-4.png")