1.5.3. 图形绘制基础#

在使用Python进行数据处理、深度学习的研究实验中,将数据或图表通过绘制并显示出来,对查看数据及提升理解的深度具有显著作用。Matplotlib(以下简称绘图包)即是用于轻松绘制图形和实现数据可视化的便利工具,其基础用法如下。

  1. 绘制简单图形

通过绘图包中的模块绘制简单的曲线,其结果如图1-21所示,代码如下。

chapter_1_5_3_01.py#
 1import numpy as np
 2# 导入绘图包
 3import matplotlib.pyplot as plt
 4
 5# 在[0,9)范围内以步长为1生成一串数据
 6arrx = np.arange(0, 9, 1)
 7# 在[0,4.5)范围内以步长为0.5生成一串数据
 8arry = np.arange(0, 4.5, 0.5)
 9# 设置X轴标签,中文需设置字体
10plt.xlabel('X轴', fontproperties="SimSun")
11# 设置Y轴标签,中文需设置字体
12plt.ylabel('Y轴', fontproperties="SimSun")
13# 传入需显示图形的x/y轴数据
14plt.plot(arrx, arry)
15# 显示出图形
16plt.show()

绘图时,可以在同一界面上绘制多个图形,效果如图1-22所示,代码如下。

chapter_1_5_3_02.py#
 1import numpy as np
 2import matplotlib.pyplot as plt
 3
 4arrx = np.arange(0, 9, 1)
 5arrY1 = np.arange(0, 4.5, 0.5)
 6plt.xlabel('X轴', fontproperties="SimSun")
 7plt.ylabel('Y轴', fontproperties="SimSun")
 8plt.plot(arrx, arrY1, label="line")
 9arrx = np.arange(0, 9, 1)
10arrY2 = np.sin(arrx)
11plt.plot(arrx, arrY2, label="sin")
12arrY3 = np.cos(arrx)
13plt.title("sin/cos曲线", fontproperties="SimSun")  # 图标题
14plt.plot(arrx, arrY3, linestyle="--", label="cos")  # 虚线显示
15plt.legend()  # 显示线段说明文本标签
16plt.show()  # 显示出图形
图1-21 直线图形显示结果

图1-21 直线图形显示结果#

图1-22 多个图例显示效果

图1-22 多个图例显示效果#

  1. 显示图片

通过绘图包读入图片并显示,其结果如图1-23所示。

chapter_1_5_3_03.py#
1import os
2import matplotlib.pyplot as plt
3
4import matplotlib.image as img
5
6img_path = os.path.join("..", "..", "_static", "1", "1.5", "1-23.png")
7img1 = img.imread(img_path)
8plt.imshow(img1)
9plt.show()
  1. 显示颜色图谱

通过绘图包读入颜色数据并显示,代码如下,其结果如图1-24所示。

chapter_1_5_3_04.py#
 1import numpy as np
 2import matplotlib.pyplot as plt
 3
 4import matplotlib.image as img
 5
 6img = np.random.randint(0, 400, 100)
 7img = img.reshape(10, 10)
 8fig, ax = plt.subplots()
 9# 面向对象方式绘图,fig代表画布,ax代表画布上可绘图区域
10im = ax.imshow(img, cmap="seismic")
11fig.colorbar(im, orientation="horizontal")
12plt.show()
图1-23 图片显示效果

图1-23 图片显示效果#

图1-24 颜色图谱显示效果

图1-24 颜色图谱显示效果#

  1. 显示等高线图

通过绘图包读入颜色数据并按热像图与等高线图等方式显示出来,代码如下,其结果如图1-25所示。

chapter_1_5_3_05.py#
 1import numpy as np
 2import matplotlib.pyplot as plt
 3
 4data1 = 3 * np.random.random((10, 10))
 5data2 = 5 * np.random.random((10, 10))
 6fig2, ax2 = plt.subplots(1, 3, figsize=(12, 4))
 7ax2[0].pcolor(data2)
 8ax2[1].contour(data1)
 9ax2[2].contourf(data1)
10fig2.tight_layout()
11plt.show()
图1-25 多种方式显示颜色数据

图1-25 多种方式显示颜色数据#