如何在 Matplotlib 中为子图添加标题?

matplotlibpythondata visualization

Matplotlib 是一个 Python 包,广泛用于创建带有标题和描述的图、子图和可视化。制作多个子图时,为每个子图添加标题会很有帮助,可以为用户和查看者提供更多背景信息和清晰度。本文将介绍如何在 Matplotlib 中为子图添加标题。

Matplotlib

Matplotlib 是 Python 编程语言和 NumPy(其数值数学扩展)的绘图库。Tkinter、wxPython、Qt 和 GTK GUI 工具包可能包括利用其面向对象 API 的图表。

matplotlib.pyplot 是一组命令式方法,允许 matplotlib 以类似于 MATLAB 的方式运行。每个 pyplot 函数都会以某种方式改变图形,无论是通过添加绘图区域、绘制线条、添加标签等。当前图形和绘图区域在 matplotlib.pyplot 中的函数调用之间保存,绘图函数始终应用于活动的轴集(请注意,此处和整个文档中的术语"轴"是指图形的轴组件,而不是多个轴的数学术语)。

子图

Matplotlib 中的子图允许在单个图形中显示多个图或图表。我们可以借助子图同时比较和分析多组数据。这使得发现或识别趋势、模式和关系变得更容易。

子图是较大图的一部分,其中包含较小的图。每个子图在网格中都有自己的位置,这取决于网格中的行数和列数以及子图在该网格中的位置。

Matplotlib 的"subplots"方法让我们可以创建子图。此函数返回一个图形对象和一个子图对象数组。我们可以使用这些子图对象在每个子图中绘制数据。

语法

fig,ax=plt.subplots(nrows,ncolumns,index)

解释

  • nrows − 此参数指定网格中子图的行数。

  • ncolumns − 此参数指定网格中子图的列数。

  • index − 此参数指定当前子图的索引。索引从 1 开始,逐行增加。

我们主要使用两种方法为子图添加标题,它们是 −

  • set_title() 函数

  • title.set_text() 函数

set_title() 函数

set_title() 函数存在于 Python 的 matplotlib 库中,用于设置图和子图的标题。

语法

axes.set_title(label,font_dict=None,Loc=None,pad=None,*,y=None)

解释

  • Axes − 它是对象的轴。

  • label (values: str) − 它定义我们想要用作子图标题的文本。

  • font_dict − font_dict 是应用于标题文本的字体属性字典。

  • loc − 它是一个字符串或整数,用于指定标题的位置。我们可以传递"center"、"left"、"right"等常见参数。

  • pad − 它是标题和图顶部之间的填充。

示例 1

# 导入所有重要包
import numpy as n
import matplotlib.pyplot as p

# 创建数组数据,我们将使用它来绘制图形
x=n.array([11, 22,33, 44, 55])

# 制作子图
f, a = p.subplots(2, 2)

# 使用子图和图设置数据
a[0, 0].plot(x, n.sin(x))
a[0, 1].plot(x, n.cos(x))
a[1, 0].plot(x, x)
a[1, 1].plot(x, n.exp(x))

# 将标题设置为所有子图
a[0, 0].set_title("Sin graph")
a[0, 1].set_title("Cos graph")
a[1, 0].set_title("Linear graph")
a[1, 1].set_title("exponential graph")

# set Spacing
f.tight_layout()
p.show()

输出

title.set_text() 函数

Matplotlib set_text() 函数是一个文本类函数,用于设置子图或图中的标题或其他文本对象的文本。 set_text() 函数可用于动态更改标题或其他文本对象的文本,以响应数据或用户输入的变化。

在向图或子图添加标题时,set_text() 函数通常与 get_title() 函数一起使用,后者是 Axes 类的方法,用于获取当前子图的标题对象。

t_obj.set_text(Text_s)
  • t_obj:是文本对象,例如标签或标题。

  • Text_s:是要设置的文本。

示例 2

# 导入所有重要包
import numpy as n
import matplotlib.pyplot as p

# 创建数组数据,我们将使用它来绘制图形
x=n.array([11, 22,33, 44, 55])

# 制作子图
f, a = p.subplots(2, 2)

# 使用子图和图设置数据
a[0, 0].plot(x, n.sin(x))
a[0, 1].plot(x, n.cos(x))
a[1, 0].plot(x, x)
a[1, 1].plot(x, n.exp(x))

# 将标题设置为所有子图
a[0, 0].title.set_text("Sin graph")
a[0, 1].title.set_text("Cos graph")
a[1, 0].title.set_text("线性图")
a[1, 1].title.set_text("指数图")

# 设置间距
f.tight_layout()
p.show()

输出


结论

总之,在 Matplotlib 中为子图添加标题有助于为查看者提供更清晰的上下文,为了为子图添加标题,我们使用了 matplotlib 库中提供的两种方法或函数。通过遵循本文概述的步骤,您可以使用 Python 轻松地为 Matplotlib 中的子图添加标题。


相关文章