Matplotlib 文本对象拼接

Beginner

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

简介

在本实验中,你将学习如何使用 Matplotlib 连接具有不同属性的文本对象。连接是将多个文本对象组合成单个字符串的过程。这在为可视化创建注释或标签时可能会很有用。

虚拟机提示

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

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

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

创建第一个文本对象

第一步是使用 ~.Axes.text 创建第一个文本对象。这个文本对象将是连接过程的起点。以下代码在绘图上的位置 (0.1, 0.5) 创建了一个红色文本对象,内容为“Matplotlib”。

text = ax.text(.1,.5, "Matplotlib", color="red")

创建后续文本对象

下一步是使用 ~.Axes.annotate 创建后续文本对象。此函数允许你相对于前一个文本对象定位文本对象。以下代码创建了三个位于前一个文本对象右侧的文本对象。

text = ax.annotate(
    " says,", xycoords=text, xy=(1, 0), verticalalignment="bottom",
    color="gold", weight="bold")  ## 自定义属性
text = ax.annotate(
    " hello", xycoords=text, xy=(1, 0), verticalalignment="bottom",
    color="green", style="italic")  ## 自定义属性
text = ax.annotate(
    " world!", xycoords=text, xy=(1, 0), verticalalignment="bottom",
    color="blue", family="serif")  ## 自定义属性

自定义文本对象

你可以使用各种属性来自定义文本对象的外观。在前面的代码块中,我们为每个文本对象设置了颜色、粗细、样式和字体族属性。你可以尝试不同的属性以获得所需的外观。

显示绘图

一旦你创建并自定义了所有文本对象,就可以使用 plt.show() 显示绘图。以下代码块展示了该绘图的完整代码。

import matplotlib.pyplot as plt

plt.rcParams["font.size"] = 20
ax = plt.figure().add_subplot(xticks=[], yticks=[])

## 第一个单词,使用 text() 创建。
text = ax.text(.1,.5, "Matplotlib", color="red")
## 后续单词,使用 annotate() 定位,相对于前一个单词。
text = ax.annotate(
    " says,", xycoords=text, xy=(1, 0), verticalalignment="bottom",
    color="gold", weight="bold")  ## 自定义属性
text = ax.annotate(
    " hello", xycoords=text, xy=(1, 0), verticalalignment="bottom",
    color="green", style="italic")  ## 自定义属性
text = ax.annotate(
    " world!", xycoords=text, xy=(1, 0), verticalalignment="bottom",
    color="blue", family="serif")  ## 自定义属性

plt.show()

总结

在本实验中,你学习了如何使用 Matplotlib 将具有不同属性的文本对象连接起来。你可以使用此技术为可视化创建自定义注释或标签。通过自定义每个文本对象的外观,你可以创建视觉上吸引人且信息丰富的绘图。