Matplotlib:文本命令

Beginner

This tutorial is from open-source community. Access the source code

简介

Matplotlib 是一个用于创建可视化图表的 Python 库,例如折线图、散点图、柱状图等等。在本实验中,我们将学习如何使用文本命令向图表中添加文本。我们将探索向图表中添加文本和注释的不同方法。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会立即为你解决问题。

导入所需库

首先,我们需要导入 matplotlib 库及其 pyplot 模块。我们将使用 pyplot 模块来创建和定制我们的图表。

import matplotlib.pyplot as plt

创建图形和子图

我们将使用 plt.subplots() 函数创建一个图形和子图。此函数返回一个包含图形和子图的元组。我们将使用该子图向我们的图表中添加文本和注释。

fig, ax = plt.subplots()

为图形添加标题

我们可以使用 fig.suptitle() 函数为图形添加标题。此函数接受一个字符串作为参数,并设置图形的标题。

fig.suptitle('bold figure suptitle', fontsize=14, fontweight='bold')

为子图添加标题

我们可以使用 ax.set_title() 函数为子图添加标题。此函数接受一个字符串作为参数,并设置子图的标题。

ax.set_title('axes title')

为坐标轴添加标签

我们可以分别使用 ax.set_xlabel()ax.set_ylabel() 函数为 x 轴和 y 轴添加标签。这些函数接受一个字符串作为参数,并设置相应坐标轴的标签。

ax.set_xlabel('xlabel')
ax.set_ylabel('ylabel')

向图表中添加文本

我们可以使用 ax.text() 函数向图表中添加文本。此函数接受三个参数:x 坐标、y 坐标和文本字符串。我们可以使用 stylebboxfontsize 参数来自定义文本样式。

ax.text(3, 8, 'boxed italics text in data coords', style='italic',
        bbox={'facecolor':'red', 'alpha': 0.5, 'pad': 10})

ax.text(2, 6, r'an equation: $E=mc^2$', fontsize=15)

ax.text(3, 2, 'Unicode: Institut f\374r Festk\366rperphysik')

ax.text(0.95, 0.01, 'colored text in axes coords',
        verticalalignment='bottom', horizontalalignment='right',
        transform=ax.transAxes,
        color='green', fontsize=15)

向图表中添加注释

我们可以使用 ax.annotate() 函数向图表中添加注释。此函数接受三个参数:注释文本、要注释的点的 xy 坐标以及文本位置的 xy 坐标。我们可以使用 arrowprops 参数来自定义注释样式。

ax.annotate('annotate', xy=(2, 1), xytext=(3, 4),
            arrowprops=dict(facecolor='black', shrink=0.05))

设置绘图界限

我们可以使用 ax.set() 函数来设置绘图的 x 轴和 y 轴界限。此函数接受两个参数:x 轴和 y 轴界限,以元组形式表示。

ax.set(xlim=(0, 10), ylim=(0, 10))

显示图表

最后,我们可以使用 plt.show() 函数来显示图表。此函数会在一个单独的窗口中显示图表。

plt.show()

总结

在本实验中,我们学习了如何使用文本命令向图表添加文本和注释。我们探索了使用 ax.text()ax.annotate() 函数向图表添加文本和注释的不同方法。我们还学习了如何使用 ax.set() 函数设置图表的界限。通过使用这些文本命令,我们可以使我们的图表更具信息性且更易于理解。