Matplotlib 注释

Salman Mehmood 2022年5月11日
Matplotlib 注释

在本教程中,我们将了解如何在 Python 中使用带有 Matplotlib 的 annotate() 方法向绘图添加注释。

在 Matplotlib 中使用 annotate() 方法的绘图中添加注释

绘图注释将注释添加到图表或文本中,以解释图表或文本中的该点。我们可以使用 annotate() 方法为绘图添加注释。

Matplotlib 的另一种方法称为 text()。它还允许我们在绘图中添加注释,但与 annotate() 方法相比,text() 方法具有非常基本的功能。

annotate() 方法的语法。

annotate(s,xy,*args,**kwargs)
参数 描述
s 第一个参数是要添加到绘图中的文本。
xy 接下来是接受元组并将采用浮点值的 xy 参数坐标。你需要提及 x 坐标和 y 坐标,这是你要注释点的点。
*args,**kwargs 这些关键字参数帮助我们更改文本属性,如字体样式、字体大小等。
xytext xytext 参数将为你提供要注释的位置,因此这是可选参数。如果你不提及这一点,它将采用第二个 xy 参数作为文本的位置。
xycoords, textcoords 我们可以使用 xycoordstextcoords,它们采用 XY 和文本的坐标系。我们可以通过这个参数来改变 XY 的坐标系。

默认情况下,这个 annotate() 方法会将坐标系作为"data"。如果我们想改变 textcoords 参数的坐标系,那么我们可以改变这个参数。
arrowprops 在文本和作为注释点或位置的点之间添加一个箭头。此参数将字典作为值,因此我们需要将其传递给键值对。

如果你不提及它不会在绘图上添加任何箭头,则它是可选的。此字典参数有几个键,因此请从此处阅读详细文档。
annotation_clip annotation_clip 也是一个可选参数。它将采用布尔值,当注释点 xy 在轴区域之外时,它将告诉你是否要绘制注释。
如果你传递它"True",当 xy 点在绘图之外。如果它是"False",它将绘制。

代码:

import matplotlib.pyplot as plot

plot.plot([10,20,30,40],marker="o")

plot.annotate("Points",(1,20))
plot.show()

输出:

在 matplotlib 中使用 annotate 方法

下一个示例使用 xytext*args 参数。

代码:

import matplotlib.pyplot as plot

plot.plot([10,20,30,40],marker="o")

plot.annotate("Points",(1,20),(0.5,25),size=20,color="red")
plot.show()

输出:

使用 xytext 参数和 args 参数注释方法

我们可以使用 annotate() 方法的 arrowprops 属性添加箭头。

代码:

import matplotlib.pyplot as plot

plot.plot([10,20,30,40],marker="o")

plot.annotate("Points",(1,20),(0.5,25),arrowprops={})
plot.show()

输出:

使用 arrowprops 属性注释方法

我们可以使用 arrowstyle 键更改箭头的样式。

代码:

import matplotlib.pyplot as plot

plot.plot([10,20,30,40],marker="o")

plot.annotate("Points",(1,20),(0.5,25),arrowprops={"arrowstyle":"<->"})
plot.show()

输出:

使用箭头样式键更改箭​​头样式

我们也可以使用 width 键来增加箭头的宽度,但是我们不能同时使用 width 和 arrowstyle 键。如果我们这样做,那么我们将得到一个错误。

当我们不使用键作为 arrowstyle 时,我们只能使用这个键。

代码:

import matplotlib.pyplot as plot

plot.plot([10,20,30,40],marker="o")

plot.annotate("Points",(1,20),(0.5,25),arrowprops={"width":10})
plot.show()

输出:

使用箭头道具增加箭头宽度

当注释的坐标在轴之外时,我们可以使用 annotation_clip 属性隐藏注释,因此我们需要将布尔值作为 "True" 传递给它,但我们希望看到注释甚至注释坐标被放置在图之外,所以我们通过它"False"

代码:

import matplotlib.pyplot as plot

plot.plot([10,20,30,40],marker="o")

plot.annotate("Points",(1,20),(0.5,45),arrowprops={"arrowstyle":"<->"},annotation_clip=False)
plot.show()

输出:

使用 annotation_clip 属性隐藏注释

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn