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()函数可用于根据数据或用户输入的更改动态修改标题或其他文本对象的文本。
当向绘图或子图添加标题时,通常与get_title()函数一起使用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的子图添加标题。