Matplotlib 标题

Matplotlib 标题函数

在 Matplotlib 中,我们可以使用 title()、xlabel()、ylabel() 这 3 个函数来分别定义主标题、x 轴标题、y 轴标题。

语法:

plt.title(label, loc)     # 主标题
plt.xlabel(label, loc)    # x轴标题
plt.ylabel(label, loc)    # y轴标题

说明:

title()、xlabel()、ylabel() 这 3 个函数都有 label 和 loc 这 2 个参数。

  • label(必选):用于定义标题内容。
  • loc(可选):用于定义标题位置。

不同函数的 loc 参数取值是不一样的,说明分别如下。

  • 对于 title() 来说,它的 loc 参数取值有 3 种:'left'、'center'(默认值)、'right'。
  • 对于 xlabel() 来说,它的 loc 参数取值有 3 种:'left'、'center'(默认值)、'right'。
  • 对于 ylabel() 来说,它的 loc 参数取值有这 3 种:'top'、'center'(默认值)、'bottom'。

Matplotlib 标题示例

接下来,我们通过几个简单的例子来讲解一下 Matplotlib 是如何设置标题及其样式的。

示例 1:Matplotlib 设置标题

import matplotlib.pyplot as plt

# 解决中文乱码
plt.rcParams['font.family'] = ['SimHei', 'PingFang SC']
# 解决负号不显示
plt.rcParams['axes.unicode_minus'] = False

# 绘图
x = [1, 2, 3, 4]
y = [16, 15, 18, 17]
plt.plot(x, y)

# 定义标题
plt.title('一个折线图')
plt.xlabel('x轴标题')
plt.ylabel('y轴标题')

# 显示
plt.show()

运行之后,效果如下图所示。

Matplotlib设置标题

分析:

如果图表中包含中文,就必须使用 plt.rcParams['font.family'] 来设置中文字体,不然就会有乱码效果。如果图表中包含符号(-),也必须设置 plt.rcParams['axes.unicode_minus'] 为 False。其中,plt.rcParams 是 Matplotlib 的运行时配置参数,用于自定义各种属性,包括字体、线条样式等。

在实际工作中,我们都建议在绘图的一开始处,统一加上下面这两句代码。

plt.rcParams['font.family'] = ['SimHei', 'PingFang SC']     # 解决中文乱码
plt.rcParams['axes.unicode_minus'] = False   # 解决负号不显示

示例 2:Matplotlib 改变主标题位置

import matplotlib.pyplot as plt

# 设置
plt.rcParams['font.family'] = ['SimHei', 'PingFang SC']
plt.rcParams['axes.unicode_minus'] = False

# 绘图
x = [1, 2, 3, 4]
y = [16, 15, 18, 17]
plt.plot(x, y)

# 定义标题
plt.title('一个折线图', loc='left')
plt.xlabel('x轴标题')
plt.ylabel('y轴标题')

# 显示
plt.show()

运行之后,效果如下图所示。

Matplotlib改变主标题位置

分析:

在这个例子中,title() 函数中的 loc='left' 表示定义主标题的位置在左边。

示例 3:Matplotlib 设置轴标题位置

import matplotlib.pyplot as plt

# 设置
plt.rcParams['font.family'] = ['SimHei', 'PingFang SC']
plt.rcParams['axes.unicode_minus'] = False

# 绘图
x = [1, 2, 3, 4]
y = [16, 15, 18, 17]
plt.plot(x, y)

# 定义标题
plt.title('一个折线图')
plt.xlabel('x轴标题', loc='right')
plt.ylabel('y轴标题', loc='top')

# 显示
plt.show()

运行之后,效果如下图所示。

Matplotlib改变轴标题位置

分析:

x 轴标题默认是水平居中,如果想要将其定义在最右边,我们可以使用 loc='right' 来实现。而 y 轴标题默认是垂直居中,如果想要将其定义在最顶部,我们可以使用 loc='top' 来实现。

示例 4:Matplotlib 设置标题字体样式

import matplotlib.pyplot as plt

# 设置
plt.rcParams['font.family'] = ['SimHei', 'PingFang SC']
plt.rcParams['axes.unicode_minus'] = False

# 绘图
x = [1, 2, 3, 4]
y = [16, 15, 18, 17]
plt.plot(x, y)

# 定义标题
plt.title('一个折线图', fontsize=14, color='red')
plt.xlabel('x轴标题')
plt.ylabel('y轴标题')

# 显示
plt.show()

运行之后,效果如下图所示。

Matplotlib设置标题字体样式

分析:

标题本质上是一个文本,既然是文本,我们就可以使用 fontsize、color 等参数定义样式。其中 fontsize 用于定义字体大小,color 用于定义字体颜色。常用的字体样式参数还包括:

  • fontweight: 设置字体粗细,例如 'bold'。
  • fontstyle: 设置字体样式,例如 'italic'(斜体)。
  • fontfamily: 设置字体类型,例如 'Arial'。可以是一个包含多个字体名称的列表,Matplotlib 会按顺序查找可用的字体。

对于这个例子来说,fontsize=14 表示定义字体大小为 14 pt(points),color='red' 表示定义字体颜色为红色。当然了,小伙伴们也可以自行在 xlabel() 和 ylabel() 这两个函数中试一下。

此外,当我们需要为多个标题统一设置相同的复杂样式时,应该优先使用 fontdict 参数传入一个字典,这样可以使得代码更加简洁,比如:

font_style = {'fontsize': 14, 'color': 'red', 'fontweight': 'bold'}
plt.title('一个折线图', fontdict=font_style)

上一篇: Matplotlib 画布

下一篇: Matplotlib 图例

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号