简介
在本实验中,我们将探索使用 Python Matplotlib 指定标记的不同方法。标记用于表示图表上的点,可以通过各种方式进行自定义以增强数据可视化效果。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
导入库并设置随机种子
我们将首先导入必要的库并设置随机种子,以确保结果的可重复性。
import matplotlib.pyplot as plt
import numpy as np
## Set random seed
np.random.seed(19680801)
生成随机数据
我们将使用 NumPy 的 random 模块生成随机数据。
x = np.random.rand(10)
y = np.random.rand(10)
z = np.sqrt(x**2 + y**2)
创建子图
我们将使用 subplots() 函数创建一个 2x3 的子图网格。
fig, axs = plt.subplots(2, 3, sharex=True, sharey=True, layout="constrained")
自定义标记
我们将通过以下方式自定义标记:
方法一:Matplotlib 标记符号
我们将使用 marker 参数来指定一个 Matplotlib 标记符号。
axs[0, 0].scatter(x, y, s=80, c=z, marker=">")
axs[0, 0].set_title("marker='>'")
方法二:来自 TeX 的标记
我们将使用 marker 参数,通过在 $ 符号中括住一个 TeX 符号名称来指定一个来自 TeX 的标记。
axs[0, 1].scatter(x, y, s=80, c=z, marker=r"$\clubsuit$")
axs[0, 1].set_title(r"marker=r'\$\clubsuit\$'")
方法三:来自路径的标记
我们将使用 marker 参数,通过一个 (N, 2) 数组形式指定一个由 N 个顶点组成的自定义路径。
verts = [[-1, -1], [1, -1], [1, 1], [-1, -1]]
axs[0, 2].scatter(x, y, s=80, c=z, marker=verts)
axs[0, 2].set_title("marker=verts")
方法四:正多边形标记
我们将使用 marker 参数,通过一个元组 (N, 0) 指定一个正多边形标记。
axs[1, 0].scatter(x, y, s=80, c=z, marker=(5, 0))
axs[1, 0].set_title("marker=(5, 0)")
方法五:正星形标记
我们将使用 marker 参数,通过一个元组 (N, 1) 指定一个正星形标记。
axs[1, 1].scatter(x, y, s=80, c=z, marker=(5, 1))
axs[1, 1].set_title("marker=(5, 1)")
方法六:正星号标记
我们将使用 marker 参数,通过一个元组 (N, 2) 指定一个正星号标记。
axs[1, 2].scatter(x, y, s=80, c=z, marker=(5, 2))
axs[1, 2].set_title("marker=(5, 2)")
显示图表
我们将使用 show() 函数来显示图表。
plt.show()
总结
在本实验中,我们学习了在 Python 的 Matplotlib 中自定义标记的不同方法。我们探索了各种指定标记的方法,并通过代码示例展示了它们的用法。通过自定义标记,我们可以增强数据图的视觉吸引力,并使其更具信息性。