如何将文本添加到 Matplotlib?
Matplotlib是Python中的绘图库,用于可视化数据,受 MATLAB 启发,这意味着所使用的术语(轴、图形、绘图)将类似于 MATLAB 中使用的术语。 Pyplot是 Matplotlib 库中的一个模块,它是 Matplotlib 模块的类外壳接口。
它提供了我们能想到的几乎任何类型的情节。在这篇文章中,我们将关注一个更具体的主题,即在 matplotlib 图上添加文本。以下命令用于在 matplotlib 图中创建文本。
Commands | Description |
text | This is used for adding text at an arbitrary location of the Axes. |
annotate | This is used for adding an annotation, with an optional arrow, at an arbitrary location of the Axes. |
set_xlabel | This is used for adding label to the Axes’ x-axis. |
set_ylabel | This is used for adding label to the Axes’ y-axis. |
set_title | This is used for adding title to the Axes. |
text | This is used for adding text at an arbitrary location of the Figure. |
suptitle | This 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()
输出: