简单的锚定艺术家

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何使用Matplotlib的offsetbox和mpl_toolkits.axes_grid1中的锚定辅助类。你将使用这些类创建一个包含文本框、圆形和比例尺的图形。

虚拟机提示

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

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

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

导入库

首先,你需要导入Matplotlib和必要的模块。

import matplotlib.pyplot as plt
from matplotlib.offsetbox import AnchoredText
from matplotlib.patches import Circle
from mpl_toolkits.axes_grid1.anchored_artists import AnchoredDrawingArea, AnchoredSizeBar

创建图形

使用Matplotlib的subplots()函数创建一个图形和轴对象。

fig, ax = plt.subplots()
ax.set_aspect(1.)

添加文本框

在图形中添加两个文本框,分别以不同的角为锚点,锚定在图形的左上角。

at = AnchoredText("图1a",
                  loc='upper left', prop=dict(size=8), frameon=True,
                  )
at.patch.set_boxstyle("round,pad=0.,rounding_size=0.2")
ax.add_artist(at)

at2 = AnchoredText("图1(b)",
                   loc='lower left', prop=dict(size=8), frameon=True,
                   bbox_to_anchor=(0., 1.),
                   bbox_transform=ax.transAxes
                   )
at2.patch.set_boxstyle("round,pad=0.,rounding_size=0.2")
ax.add_artist(at2)

绘制一个圆

在轴坐标中绘制一个圆。

ada = AnchoredDrawingArea(20, 20, 0, 0,
                          loc='upper right', pad=0., frameon=False)
p = Circle((10, 10), 10)
ada.da.add_artist(p)
ax.add_artist(ada)

添加一个尺寸条

在数据坐标中绘制一个长度为0.1的水平条,并在其下方添加一个固定的标签。

asb = AnchoredSizeBar(ax.transData,
                      0.1,
                      r"1$^{\prime}$",
                      loc='lower center',
                      pad=0.1, borderpad=0.5, sep=5,
                      frameon=False)
ax.add_artist(asb)

显示图形

使用Matplotlib的show()函数显示图形。

plt.show()

总结

在本实验中,你学习了如何使用Matplotlib的offsetbox和mpl_toolkits.axes_grid1中的锚定辅助类来创建一个包含文本框、圆形和尺寸条的图形。你可以使用这些类为你的图形添加信息丰富的注释和图形。