1.6 Matplotlib

在深度学习的实验中,图形的绘制和数据的可视化非常重要。Matplotlib 是用于绘制图形的库,使用 Matplotlib 可以轻松地绘制图形和实现数据的可视化。这里,我们来介绍一下图形的绘制方法和图像的显示方法。

1.6.1 绘制简单图形

可以使用 matplotlibpyplot 模块绘制图形。话不多说,我们来看一个绘制 sin 函数曲线的例子。

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. # 生成数据
  4. x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据
  5. y = np.sin(x)
  6. # 绘制图形
  7. plt.plot(x, y)
  8. plt.show()

这里使用 NumPy 的 arange 方法生成了 [0, 0.1, 0.2,…, 5.8, 5.9] 的数据,将其设为 x。对 x 的各个元素,应用 NumPy 的 sin 函数 np.sin(),将 xy 的数据传给 plt.plot 方法,然后绘制图形。最后,通过 plt.show() 显示图形。运行上述代码后,就会显示图 1-3 所示的图形。

1.6 Matplotlib - 图1

图 1-3 sin 函数的图形

1.6.2 pyplot 的功能

在刚才的 sin 函数的图形中,我们尝试追加 cos 函数的图形,并尝试使用 pyplot 的添加标题和 x 轴标签名等其他功能。

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. # 生成数据
  4. x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据
  5. y1 = np.sin(x)
  6. y2 = np.cos(x)
  7. # 绘制图形
  8. plt.plot(x, y1, label="sin")
  9. plt.plot(x, y2, linestyle = "--", label="cos") # 用虚线绘制
  10. plt.xlabel("x") # x轴标签
  11. plt.ylabel("y") # y轴标签
  12. plt.title('sin & cos') # 标题
  13. plt.legend()
  14. plt.show()

结果如图 1-4 所示,我们看到图的标题、轴的标签名都被标出来了。

1.6 Matplotlib - 图2

图 1-4 sin 函数和 cos 函数的图形

1.6.3 显示图像

pyplot 中还提供了用于显示图像的方法 imshow()。另外,可以使用 matplotlib.image 模块的 imread() 方法读入图像。下面我们来看一个例子。

  1. import matplotlib.pyplot as plt
  2. from matplotlib.image import imread
  3. img = imread('lena.png') # 读入图像(设定合适的路径!)
  4. plt.imshow(img)
  5. plt.show()

运行上述代码后,会显示图 1-5 所示的图像。

1.6 Matplotlib - 图3

图 1-5 显示图像

这里,我们假定图像 lena.png 在当前目录下。读者根据自己的环境,可能需要变更文件名或文件路径。另外,本书提供的源代码中,在 dataset 目录下有样本图像 lena.png。比如,在通过 Python 解释器从 ch01 目录运行上述代码的情况下,将图像的路径 'lena.png' 改为 '../dataset/lena.png',即可正确运行。