在介绍如何使用 Matplotlib 绘制其他图表之前,我们先来介绍一下通用的设置。这些设置不仅可以用于折线图,也可以用于其他大多数图表。通用设置的大多数函数都是直接通过 pyplot 子库来调用的,这一点大家一定要清楚。
import matplotlib.pyplot as plt
plt.函数名()在 Matplotlib 中,用于通用设置的函数比较多,常用的如下表所示。这一章的内容很重要,也是后面章节的基础,小伙伴们要认真掌握。
| 函数 | 说明 |
|---|---|
| figure() | 画布样式 |
| title()、xlabel()、ylabel() | 定义标题 |
| legend() | 定义图例 |
| xticks()、yticks() | 刻度标签 |
| xlim()、ylim() | 刻度范围 |
| grid() | 网格线 |
| axhline()、axvline() | 参考线 |
| axhspan()、axvspan() | 参考区域 |
| annotate() | 注释内容(有指向) |
在这一节中,我们先来介绍 Matplotlib 是如何设置画布样式的。
Matplotlib 画布函数
在 Matplotlib 中,我们可以使用 figure() 函数来定义画布的样式,包括大小、颜色、边框等。
语法:
plt.figure(
figsize=None,
dpi=None,
facecolor=None,
edgecolor=None,
linewidth=None,
frameon=True,
clear=False,
tight_layout=False
)说明:
figure() 函数接收以下常用参数。
figsize(可选):用于定义画布的大小,它的取值是一个元组。比如 figsize=(5, 4) 表示宽度为 5 英寸、高度为 4 英寸(注:1 英寸≈2.54 厘米)。facecolor(可选):用于定义画布的背景颜色。edgecolor(可选):用于定义画布的边框颜色。linewidth(可选):用于定义画布的边框宽度。dpi(可选):用于设置画布的分辨率(即每英寸的点数)。更高的 DPI 值,会生成更高质量的图像。frameon(可选,默认:True):是一个布尔值,表示是否绘制画布的边框。clear(可选,默认:False):是一个布尔值,表示在创建新的 Figure 对象之前是否清除已存在的 Figure。tight_layout(可选,默认:False):是一个布尔值,表示是否自动调整子图参数,以获得紧凑的布局。
facecolor 和 edgecolor 这 2 个参数的取值可以是:
颜色关键字:如 'red'、'green'、'blue'、'lightskyblue' 等。十六进制 RGB 值:如 '#FFD700'(金色)。RGBA 元组:如 (0, 1, 0, 0.5)(半透明的绿色)。
Matplotlib 画布示例
接下来,我们通过一个简单的例子来讲解一下 Matplotlib 是如何设置画布样式的。
示例:Matplotlib 设置画布样式
import matplotlib.pyplot as plt
# 画布样式
plt.figure(figsize=(5, 4), facecolor='lightskyblue')
# 绘图
x = [1, 2, 3, 4]
y = [16, 15, 18, 17]
plt.plot(x, y)
# 显示
plt.show()运行之后,效果如下图所示。

分析:
我们要特别注意一点,由于画布样式针对的是全局,所以 figure() 函数必须在绘图函数之前进行调用,不然就会有问题。这是因为 figure() 函数会创建一个新的画布对象,后续的绘图操作(比如 plt.plot())都会在这个画布上进行。
如果在绘图函数之后调用 figure(),那么之前的绘图操作将不会显示在新创建的画布上。小伙伴们可以试一下把 figure() 函数放在 plot() 函数之后调用,看看效果又是怎样的。
除了 figure() 函数比较特殊之外,对于其他通用设置函数,如果没有特别说明,那么它们既可以在绘图函数之前调用,也可以在绘图函数之后调用。
此外,figure() 设置的是最底层 “画布” 的颜色。图表中间白色的区域是 “坐标系(Axes)”,它的颜色默认是白色的(可以通过其他方式修改)。
