简介
本教程将指导你使用 Python 中的 Matplotlib 创建一个带有文本箭头的带注释散点图。
虚拟机提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
导入库并生成随机数据
首先,我们需要导入必要的库,并为散点图生成一些随机数据。
import matplotlib.pyplot as plt
import numpy as np
## Fixing random state for reproducibility
np.random.seed(19680801)
fig, ax = plt.subplots(figsize=(5, 5))
ax.set_aspect(1)
x1 = -1 + np.random.randn(100)
y1 = -1 + np.random.randn(100)
x2 = 1. + np.random.randn(100)
y2 = 1. + np.random.randn(100)
ax.scatter(x1, y1, color="r")
ax.scatter(x2, y2, color="g")
向图表添加文本注释
接下来,我们将使用 ax.text() 函数向图表添加文本注释。我们将创建两个注释,一个用于“样本 A”,另一个用于“样本 B”。
bbox_props = dict(boxstyle="round", fc="w", ec="0.5", alpha=0.9)
ax.text(-2, -2, "Sample A", ha="center", va="center", size=20,
bbox=bbox_props)
ax.text(2, 2, "Sample B", ha="center", va="center", size=20,
bbox=bbox_props)
添加文本箭头以指示方向
为了指示数据的方向,我们将使用 ax.text() 函数和 bbox 参数添加一个文本箭头,并将 boxstyle 设置为“rarrow”。
bbox_props = dict(boxstyle="rarrow", fc=(0.8, 0.9, 0.9), ec="b", lw=2)
t = ax.text(0, 0, "Direction", ha="center", va="center", rotation=45,
size=15,
bbox=bbox_props)
bb = t.get_bbox_patch()
bb.set_boxstyle("rarrow", pad=0.6)
设置绘图界限并显示绘图
最后,我们将使用 ax.set_xlim()、ax.set_ylim() 和 plt.show() 函数设置绘图的 x 和 y 界限,并显示绘图。
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
plt.show()
总结
在本教程中,我们学习了如何使用 Python 中的 Matplotlib 创建一个带有文本箭头的注释散点图。我们使用 ax.text() 函数向图中添加注释和文本箭头,并使用 ax.set_xlim()、ax.set_ylim() 和 plt.show() 函数设置绘图界限并显示绘图。