matplotlib.pyplot标题函数详解:title()与suptitle()参数及用法

竹里
竹里
发布时间:2026-10-15 | 5人浏览过
原创

本文深入解析matplotlib.pyplot模块中title()与suptitle()函数的实现机制与参数配置。详细阐述子图标题与全局图像标题的区别,逐一说明label、fontdict、loc、pad、x、y等关键参数的取值范围与默认行为,结合代码案例演示多标题共存及样式定制方法,帮助开发者精准控制图表文本布局。

本文深入解析matplotlib源码中标题功能的实现逻辑,重点区分窗口标题、子图标题与全局图像标题之间的差异。此前已简要对比了matplotlib中各类标题的表现形式,此处将展开详细说明。

使用title()设置子图标题

通过title()函数,可以在同一个子图中同时渲染中间、左侧和右侧共三个独立标题。该函数的签名定义为matplotlib.pyplot.title(label, fontdict=None, loc=None, pad=None, *, y=None, **kwargs),其各参数的具体作用及取值范围如下所述。

  • label参数:类型为字符串,用于指定标题的具体文本内容。
  • fontdict参数:类型为字典,用于精细控制文本的字体属性。其默认配置结构为:

{'fontsize': rcParams['axes.titlesize'],
 'fontweight': rcParams['axes.titleweight'],
 'color': rcParams['axes.titlecolor'],
 'verticalalignment': 'baseline',
 'horizontalalignment': loc}
  • loc参数:取值范围限定在{'left', 'center', 'right'}集合内,默认值为rcParams["axes.titlelocation"](即'center'),该参数决定了标题在子图中的水平位置。
  • y参数:类型为浮点数,默认值为rcParams["axes.titley"] (None)。该参数定义标题在子图中的垂直距离,单位为子图高度的百分比。当1.0时,标题位于子图最顶部;若设为None,系统则自动确定最佳位置以避免与其他图表元素发生重叠。
  • pad参数:类型为浮点数,默认值为default: rcParams["axes.titlepad"] (6.0)。该参数指定标题与子图边界之间的填充距离(即内边距)。
  • **kwargs参数:作为Text对象的关键字属性集合,用于进一步控制文本的外观表现,例如字体样式、文本颜色等视觉属性。

该函数执行后返回一个Text对象,代表所创建的标题实例。

关于title()函数的相关rcParams配置项包括:


#axes.titlelocation: center # alignment of the title: {left, right, center}
#axes.titlesize:   large  # fontsize of the axes title
#axes.titleweight:  normal # font weight of title
#axes.titlecolor:  auto  # color of the axes title, auto falls back to
               # text.color as default value
#axes.titley:    None  # position title (axes relative units). None implies auto
#axes.titlepad:   6.0   # pad between axes and title in points

其底层相关实现方法如下: Axes.set_title(self, label, fontdict=None, loc=None, pad=None, *, y=None, **kwargs) Axes.get_title(self, loc='center'):请注意,此方法用于返回指定位置(如左侧、右侧或中心)的标题文本内容。

案例

以下代码演示了如何在同一子图中同时设置三个不同位置的标题。


import matplotlib.pyplot as plt

# 注意,子图可以同时设置中间、左侧、右侧3个标题
plt.plot([1, 1])
# 在右侧底部显示子图标题
plt.title("right bottom",y=0,loc='right')
# 在左侧顶部显示子图标题
plt.title("left top",y=1,loc='left')
# 显示默认子图标题
plt.title("default")
plt.show()

使用suptitle()设置图像标题

该方法用于为整个图像添加一个居中的全局标题。函数签名如下:matplotlib.pyplot.suptitle(t, **kwargs),各参数作用及取值说明如下。

  • t参数:类型为字符串,指定标题的文本内容。
  • x参数:类型为浮点数,定义标题在图像水平方向的相对位置,默认值为0.5。
  • y参数:类型为浮点数,定义标题在图像垂直方向的相对位置,默认值为0.98。
  • fontdict参数:类型为字典,用于控制文本的字体属性。其默认配置为:

{'fontsize': rcParams['axes.titlesize'],
 'fontweight': rcParams['axes.titleweight'],
 'color': rcParams['axes.titlecolor'],
 'verticalalignment': 'baseline',
 'horizontalalignment': loc}
  • horizontalalignment, ha参数:类型为字符串,取值范围在{'center', 'left', right'}之间,默认值为'center',用于定义相对于坐标点(x,y)的水平对齐方式。
  • verticalalignment, va参数:类型为字符串,取值范围在{'top', 'center', 'bottom', 'baseline'}之间,默认值为'top',用于定义相对于坐标点(x,y)的垂直对齐方式。
  • fontsize, size参数:取值可为浮点数或{'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}枚举值,默认值为rcParams["figure.titlesize"] ('large'),用于指定文本的字体大小。
  • fontweight, weight参数:取值范围详见官方文档,用于指定文本的字重粗细。
  • **kwargs参数:作为Text对象的关键字属性,用于控制文本的外观细节,如字体和颜色等。

该函数最终返回一个Text对象。

关于suptitle()函数的相关rcParams配置项如下:


#figure.titlesize:  large   # size of the figure title (``Figure.suptitle()``)
#figure.titleweight: normal  # weight of the figure title

案例

以下示例展示了如何添加图像标题,并具体设置坐标位置、字体大小及文本颜色等属性。


import matplotlib.pyplot as plt

plt.plot([1, 1])
plt.title("title")
plt.suptitle("suptitle", x=0.1, y=0.98, fontsize=16, color='red')

plt.show()

至此,关于matplotlib.pyplot模块中title()和suptitle()函数的详细介绍已完毕。如需了解更多相关matplotlib标题设置内容,建议查阅本站过往文章或继续浏览后续技术文档。感谢大家的支持!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表