使用单位创建图形对象

Beginner

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

简介

在本实验中,你将学习如何在 Matplotlib 中使用单位创建图形对象。你将创建不同类型的图形对象,如线条、文本和补丁,并将它们添加到绘图中。你还将设置 x 轴和 y 轴的单位,并学习如何将单位转换为标量。

虚拟机提示

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

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

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

导入库

首先,你需要导入必要的库。你将使用matplotlib.pyplot来创建绘图,使用numpy来生成随机数据,使用matplotlib.collectionsmatplotlib.linesmatplotlib.patchesmatplotlib.text来创建不同类型的图形对象。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.collections as collections
import matplotlib.lines as lines
import matplotlib.patches as patches
import matplotlib.text as text

创建图形和坐标轴

接下来,你需要创建图形对象和坐标轴对象。图形对象是所有绘图元素的顶级容器,而坐标轴对象则表示绘图的 x 轴和 y 轴。

fig, ax = plt.subplots()

设置坐标轴的单位

要在 x 轴和 y 轴上使用单位,你需要使用set_units方法为每个轴设置单位。在本示例中,你将使用厘米作为单位。

ax.xaxis.set_units('cm')
ax.yaxis.set_units('cm')

生成随机数据

为了创建线条图形对象,你需要生成一些随机数据。你将使用numpy.random为线条生成两组 x 和 y 坐标。

x = np.array([0, 1.5])
y = np.array([0, 2.5])

创建一个线条图形对象

现在,你可以使用matplotlib.lines中的Line2D类来创建线条图形对象。你可以将 x 和 y 坐标、线宽、颜色以及坐标轴对象作为参数进行指定。

line = lines.Line2D(x, y, lw=2, color='black', axes=ax)

将图形对象添加到绘图中

要将线条图形对象添加到绘图中,你需要调用坐标轴对象的add_line方法,并将线条图形对象作为参数传递。

ax.add_line(line)

创建一个文本图形对象

接下来,你将使用matplotlib.text中的Text类创建一个文本图形对象。你可以将 x 和 y 坐标、文本标签、水平和垂直对齐方式以及坐标轴对象作为参数进行指定。

t = text.Text(3, 2.5, 'text label', ha='left', va='bottom', axes=ax)

将图形对象添加到绘图中

要将文本图形对象添加到绘图中,你需要调用坐标轴对象的add_artist方法,并将文本图形对象作为参数传递。

ax.add_artist(t)

设置绘图的界限

要设置绘图的界限,你需要调用坐标轴对象的set_xlimset_ylim方法,并为每个坐标轴传递最小值和最大值。

ax.set_xlim(-1, 10)
ax.set_ylim(-1, 10)

显示绘图

最后,你可以使用pyplotshow方法来显示绘图。

plt.show()

总结

在本实验中,你学习了如何在 Matplotlib 中创建带有单位的图形对象。你学习了如何设置 x 轴和 y 轴的单位、生成随机数据、创建线条和文本图形对象,并将它们添加到绘图中。你还学习了如何设置绘图的界限并显示它。