4.2 Matplotlib
本节介绍如何使用 matplotlib,最简单方法是在 Jupyter notebook 进行交互式绘图。在 Visual Studio Code 画面中按下 Ctrl+Shift+P 打开命令面板 (Command Palette) ,接着键入 Jupyter: Create New Jupyter NoteBook 在命令进行搜索,然后选择该命令,Visual Studio Code 会开启一个空白的 Jupyter Notebook 画面,在 Jupyter notebook 中执行下面的语句,用来激活 Jupyter Notebook 对 matplotlib 的支援:
%matplotlib inline
上一节介绍的 Python 的绘图基本原理:画布、坐标系、坐标轴。接下来认识一下在画布上的基本元素:
- 子图 (Subplot):在画布内放置多个小图。
- 画布的基本元素:标题 (Title) 整个画布上的标题,也可以针对小图;标签 (Label) 通常是针对坐标轴,用来标示坐标轴的意义。
- 画布上线条基本设置:颜色(color)、线型(linestyle)、点标记符(marker)。
- 刻度、标签和图例。
以下画出一个直线图,取任意 10 个整数,范围在 1~ 100 之间,直接把它画出来。
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randint(1, high = 10, size=(10))
plt.plot(data)
图 4-2-1 利用 matplotlib 画出一个折线图
子图 (Subplot)、标题 (Title)、标签 (Label)
可以发现这样的图片对使用者而言并没有多大意义,因为不清楚这样的图片所要表达的内容,以下这个实例加上了小图的加上了小图的设定,在画布中,设定一个 2 行 1 列的小图,而先针对第 1 小图来进行绘制,提供 X, Y 轴的数据,并设定 X, Y 轴的标签与整副图片的标题。
import matplotlib.pyplot as plt
import numpy as np
# 创建一个 figure 对象,相当于一个空白的画布
figure = plt.figure()
# 在画布上添加一个坐标系,画布内有 2 x 1 个子图,回传第一个子图
axes1 = figure.add_subplot(2, 1, 1)
# 准备画图的数据
x = [1, 2, 3, 4, 5, 6, 7]
y = [21, 27, 29, 32, 29, 28, 35]
# 设置画布的基本元素
axes1.set_xlabel('x label')
axes1.set_ylabel('y label')
axes1.set_title("title")
# 画图
axes1.plot(x, y)
图 4-2-2 具有标题与标签的画布