📜  如何将文本添加到 Matplotlib?

📅  最后修改于: 2022-05-13 01:55:10.033000             🧑  作者: Mango

如何将文本添加到 Matplotlib?

Matplotlib是Python中的绘图库,用于可视化数据,受 MATLAB 启发,这意味着所使用的术语(轴、图形、绘图)将类似于 MATLAB 中使用的术语。 Pyplot是 Matplotlib 库中的一个模块,它是 Matplotlib 模块的类外壳接口。

它提供了我们能想到的几乎任何类型的情节。在这篇文章中,我们将关注一个更具体的主题,即在 matplotlib 图上添加文本。以下命令用于在 matplotlib 图中创建文本。

CommandsDescription
text This is used for adding text at an arbitrary location of the Axes.
annotateThis is used for adding an annotation, with an optional arrow, at an arbitrary location of the Axes.
set_xlabelThis is used for adding label to the Axes’ x-axis.
set_ylabelThis is used for adding label to the Axes’ y-axis.
set_titleThis is used for adding title to the Axes.
textThis is used for adding text at an arbitrary location of the Figure.
 suptitleThis is used for adding title to the Figure.

我们将一一查看每个命令,首先,让我们创建 Day v/s Question 的基本图,在该图上添加各种文本对象。

代码:

Python3
# Code to add text on matplotlib
  
# Importing library
import matplotlib.pyplot as plt
  
# Creating x-value and y-value of data
x = [1, 2, 3, 4, 5]
y = [5, 8, 4, 7, 5]
  
# Creating figure
fig = plt.figure()
  
# Adding axes on the figure
ax = fig.add_subplot(111)
  
# Plotting data on the axes
ax.plot(x, y)
  
plt.show()


Python3
# Adding title
ax.set_title('Day v/s No of Questions on GFG', fontsize=15)
  
# Adding axis title
ax.set_xlabel('Day', fontsize=12)
ax.set_ylabel('No of Questions', fontsize=12)
  
# Seting axis limits
ax.axis([0, 10, 0, 15])


Python3
# Adding text on the plot.
ax.text(1, 13, 'Practice on GFG', style='italic', bbox={
        'facecolor': 'grey', 'alpha': 0.5, 'pad': 10})


Python3
# Adding text without box on the plot.
ax.text(8, 13, 'December', style='italic')


Python3
# Adding annotation on the plot.
ax.annotate('Peak', xy=(2, 8), xytext=(4, 10), fontsize=12,
            arrowprops=dict(facecolor='green', shrink=0.05))


Python3
# Code to add text on matplotlib
  
# Importing library
import matplotlib.pyplot as plt
  
# Creating x-value and y-value of data
x = [1, 2, 3, 4, 5]
y = [5, 8, 4, 7, 5]
  
# Creating figure
fig = plt.figure()
  
# Adding axes on the figure
ax = fig.add_subplot(111)
  
# Plotting data on the axes
ax.plot(x, y)
  
# Adding title
ax.set_title('Day v/s No of Questions on GFG', fontsize=15)
  
# Adding axis title
ax.set_xlabel('Day', fontsize=12)
ax.set_ylabel('No of Questions', fontsize=12)
  
# Seting axis limits
ax.axis([0, 10, 0, 15])
  
# Adding text on the plot.
ax.text(1, 13, 'Practice on GFG', style='italic', bbox={
        'facecolor': 'green', 'alpha': 0.5, 'pad': 10})
  
# Adding text without box on the plot.
ax.text(8, 13, 'December', style='italic')
  
# Adding annotation on the plot.
ax.annotate('Peak', xy=(2, 8), xytext=(4, 10), fontsize=12,
            arrowprops=dict(facecolor='green', shrink=0.05))
  
plt.show()


输出:

输出图看起来非常简单。现在,让我们看看一些文本命令将它添加到我们的绘图中。

  • set_title()用于添加轴的标题。第一个强制参数是您要给出的标题,其余参数是可选的以格式化它。
  • 类似地, set_xlabel()set_ylabel()用于为 x 轴和 y 轴添加标题。它也将标题作为参数。

最好调整 y 轴上的范围,以便我们以后可以有一些空间来添加文本。为此,我们将使用 ax.axis() ,它允许指定值范围(前两个用于 x 轴,另外两个用于 y 轴)。

现在,让我们添加它的标题以及 x 轴和 y 轴的名称。

代码:

蟒蛇3

# Adding title
ax.set_title('Day v/s No of Questions on GFG', fontsize=15)
  
# Adding axis title
ax.set_xlabel('Day', fontsize=12)
ax.set_ylabel('No of Questions', fontsize=12)
  
# Seting axis limits
ax.axis([0, 10, 0, 15])

输出:

现在,它看起来比以前的版本更好。是时候为我们的情节添加文本了。首先,让我们看看它们。

axis.text()用于在 Axes 的任意位置添加文本。为此,我们需要指定文本的位置,当然还有文本是什么。例如,以下代码将添加“练习 GFG”文本。它将根据指定坐标的点(在本例中为 [1,13])进行定位。参数bbox用于捕获带有框的文本。作为 bbox 参数的参数,我们传递一个包含格式样式的字典。

代码:

蟒蛇3

# Adding text on the plot.
ax.text(1, 13, 'Practice on GFG', style='italic', bbox={
        'facecolor': 'grey', 'alpha': 0.5, 'pad': 10})

如果我们不想将文本框起来,那么只需不要为 bbox 参数分配任何内容。以下代码添加没有框的指定文本。

代码:

蟒蛇3

# Adding text without box on the plot.
ax.text(8, 13, 'December', style='italic')

我们还可以添加带有注释的文本。

axis.annotate() 用于在轴的任意位置添加带有可选箭头的注释。它的xy参数包含箭头的坐标, xytext参数指定文本的位置。 Arrowprops参数用于设置箭头的样式。

例如,我们可以用注释标记 Day-Question 数据的峰值。

代码:

蟒蛇3

# Adding annotation on the plot.
ax.annotate('Peak', xy=(2, 8), xytext=(4, 10), fontsize=12,
            arrowprops=dict(facecolor='green', shrink=0.05))

让我们把所有这些放在一起,看看最终的代码。

代码:

蟒蛇3

# Code to add text on matplotlib
  
# Importing library
import matplotlib.pyplot as plt
  
# Creating x-value and y-value of data
x = [1, 2, 3, 4, 5]
y = [5, 8, 4, 7, 5]
  
# Creating figure
fig = plt.figure()
  
# Adding axes on the figure
ax = fig.add_subplot(111)
  
# Plotting data on the axes
ax.plot(x, y)
  
# Adding title
ax.set_title('Day v/s No of Questions on GFG', fontsize=15)
  
# Adding axis title
ax.set_xlabel('Day', fontsize=12)
ax.set_ylabel('No of Questions', fontsize=12)
  
# Seting axis limits
ax.axis([0, 10, 0, 15])
  
# Adding text on the plot.
ax.text(1, 13, 'Practice on GFG', style='italic', bbox={
        'facecolor': 'green', 'alpha': 0.5, 'pad': 10})
  
# Adding text without box on the plot.
ax.text(8, 13, 'December', style='italic')
  
# Adding annotation on the plot.
ax.annotate('Peak', xy=(2, 8), xytext=(4, 10), fontsize=12,
            arrowprops=dict(facecolor='green', shrink=0.05))
  
plt.show()

输出: