Matplotlib设置坐标轴标题的多种方法(附带实例)
为了使坐标轴的含义更清晰,通常需要为坐标轴添加标题。使用 pyplot 模块中的 xlabel() 和 ylabel() 函数,或使用 Axes 对象的 set_xlabel() 和 set_ylabel() 方法,可以为 x 轴和 y 轴添加标题。
分析下面的代码:

图 1 没有标题的坐标轴
本例使用 numpy 库中的 randint() 函数自动生成 10~100 的随机整数,所以需要在代码的开头导入该库。np.random.seed(10) 这条语句是为了每次运行代码时,都能生成完全相同的随机数。可以将括号中的 10 替换为任意数字,使用同一个数字可以获得相同的随机数。
下面的代码是使用 Axes 对象的 set_xlabel() 方法,将 x 轴的标题设置为“月份”,使用 set_ylabel() 方法将 y 轴的标题设置为“数量”:

图 2 为坐标轴添加标题
使用 pyplot 模块中的 xlabel() 和 ylabel() 函数也可以实现相同的功能:
下面的代码将 x 轴标题显示在图表的顶部,将 y 轴标题显示在图表的右侧:

图 3 更改坐标轴标题的位置
将 set_label_position() 方法的参数分别设置为 bottom 和 left,可以将 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 轴的标题显示到图表的底部和左侧。