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


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 (值:str) − 它定义了我们想要用作子图标题的文本。

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

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

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

示例 1

# importing all the important packages
import numpy as n
import matplotlib.pyplot as p

# create array data using whuich we will plot the graph
x=n.array([11, 22,33, 44, 55])

# making subplots
f, a = p.subplots(2, 2)

# set data with subplots and plot
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))

# set the title to all subplots
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

# importing all the important packages
import numpy as n
import matplotlib.pyplot as p

# create array data using whuich we will plot the graph
x=n.array([11, 22,33, 44, 55])

# making subplots
f, a = p.subplots(2, 2)

# set data with subplots and plot
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))

# set the title to all subplots
a[0, 0].title.set_text("Sin graph")
a[0, 1].title.set_text("Cos graph")
a[1, 0].title.set_text("Linear graph")
a[1, 1].title.set_text("exponential graph")

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

输出


结论

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

更新于: 2023-05-31

7K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告