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