首页 > 编程笔记 > Python笔记 阅读:20

Matplotlib设置坐标轴标题的多种方法(附带实例)

为了使坐标轴的含义更清晰,通常需要为坐标轴添加标题。使用 pyplot 模块中的 xlabel() 和 ylabel() 函数,或使用 Axes 对象的 set_xlabel() 和 set_ylabel() 方法,可以为 x 轴和 y 轴添加标题。

分析下面的代码:
import matplotlib.pyplot as plt
import numpy as np

x = range(1, 13)
np.random.seed(10)
y = np.random.randint(10, 100, 12)
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()
将创建下图所示的图表,由于 x 轴和 y 轴都没有标题,所以不知道两个坐标轴的数据表示的是什么。


图 1 没有标题的坐标轴

本例使用 numpy 库中的 randint() 函数自动生成 10~100 的随机整数,所以需要在代码的开头导入该库。np.random.seed(10) 这条语句是为了每次运行代码时,都能生成完全相同的随机数。可以将括号中的 10 替换为任意数字,使用同一个数字可以获得相同的随机数。

下面的代码是使用 Axes 对象的 set_xlabel() 方法,将 x 轴的标题设置为“月份”,使用 set_ylabel() 方法将 y 轴的标题设置为“数量”:
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

mpl.rcParams['font.sans-serif'] = 'SimSun'  # 设置字体为SimSun
x = range(1, 13)
np.random.seed(10)
y = np.random.randint(10, 100, 12)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlabel('月份')  # 设置x轴标签为“月份”
ax.set_ylabel('数量')  # 设置y轴标签为“数量”
plt.show()
此时坐标轴的含义变得非常明确,如下图所示:


图 2 为坐标轴添加标题

使用 pyplot 模块中的 xlabel() 和 ylabel() 函数也可以实现相同的功能:
plt.xlabel('月份')
plt.ylabel('数量')
x 轴和 y 轴的标题默认显示在图表的底部和左侧。使用 Axis 对象的 set_label_position() 方法可以更改标题的位置。为了获得对 x 轴和 y 轴的引用,需要使用 Axes 对象的 xaxis 和 yaxis 属性。

下面的代码将 x 轴标题显示在图表的顶部,将 y 轴标题显示在图表的右侧:
ax.xaxis.set_label_position('top')
ax.yaxis.set_label_position('right')
如下图所示:


图 3 更改坐标轴标题的位置

将 set_label_position() 方法的参数分别设置为 bottom 和 left,可以将 x 轴和 y 轴的标题显示到图表的底部和左侧。

相关文章