简介
在本实验中,你将学习如何在 Matplotlib 中使用单位创建图形对象。你将创建不同类型的图形对象,如线条、文本和补丁,并将它们添加到绘图中。你还将设置 x 轴和 y 轴的单位,并学习如何将单位转换为标量。
虚拟机提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作的验证无法自动化。
如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
导入库
首先,你需要导入必要的库。你将使用matplotlib.pyplot来创建绘图,使用numpy来生成随机数据,使用matplotlib.collections、matplotlib.lines、matplotlib.patches和matplotlib.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_xlim和set_ylim方法,并为每个坐标轴传递最小值和最大值。
ax.set_xlim(-1, 10)
ax.set_ylim(-1, 10)
显示绘图
最后,你可以使用pyplot的show方法来显示绘图。
plt.show()
总结
在本实验中,你学习了如何在 Matplotlib 中创建带有单位的图形对象。你学习了如何设置 x 轴和 y 轴的单位、生成随机数据、创建线条和文本图形对象,并将它们添加到绘图中。你还学习了如何设置绘图的界限并显示它。