Matplotlib 共享坐标轴

Beginner

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

简介

在本实验中,你将学习如何使用 Python 中的 Matplotlib 库创建具有共享轴的图表。当你想要比较具有相同比例的不同数据集时,共享轴会很有用。

虚拟机提示

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

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

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

导入 Matplotlib 和 NumPy 库

我们需要导入 Matplotlib 和 NumPy 库来创建图表。NumPy 是一个用于 Python 编程语言的库,它增加了对大型多维数组和矩阵的支持。

import matplotlib.pyplot as plt
import numpy as np

为图表创建数据

我们需要创建用于可视化的图表数据。在这个例子中,我们将使用 NumPy 创建三个不同的数据集。

t = np.arange(0.01, 5.0, 0.01)
s1 = np.sin(2 * np.pi * t)
s2 = np.exp(-t)
s3 = np.sin(4 * np.pi * t)

创建子图

我们可以使用 plt.subplot() 方法创建子图。在这个例子中,我们将创建三个子图,第一个子图占据第一行和所有三列,第二个和第三个子图分别占据第二行和第三行,并与第一个子图共享 x 轴。

ax1 = plt.subplot(311)
ax2 = plt.subplot(312, sharex=ax1)
ax3 = plt.subplot(313, sharex=ax1, sharey=ax1)

绘制数据

现在我们可以使用 plt.plot() 方法在每个子图上绘制数据。

ax1.plot(t, s1)
ax2.plot(t, s2)
ax3.plot(t, s3)

自定义刻度标签

我们可以使用 plt.tick_params() 方法来自定义各个轴上的刻度标签。在这个例子中,我们将把第一个子图 x 轴上的刻度标签设置得更小。

plt.tick_params('x', labelsize=6)

移除刻度标签

我们可以通过使用 ax.get_xticklabels() 方法更改标签的可见性,从而从特定子图中移除刻度标签。在这个例子中,我们将移除第二个子图 x 轴上的刻度标签。

plt.tick_params('x', labelbottom=False)

设置坐标轴范围

我们可以使用 plt.xlim() 方法为每个子图设置坐标轴范围。在这个例子中,我们将把第三个子图的 x 轴范围设置为从 0.01 到 5.0。

plt.xlim(0.01, 5.0)

显示图表

现在我们可以使用 plt.show() 方法来显示图表。

plt.show()

总结

在这个实验中,我们学习了如何使用 Python 中的 Matplotlib 库创建具有共享坐标轴的图表。我们创建了子图,在每个子图上绘制了数据,自定义了刻度标签,移除了刻度标签,设置了坐标轴范围,并显示了图表。当你想要比较具有相同比例的不同数据集时,共享坐标轴会很有用。