简介
在本实验中,你将学习如何使用 Matplotlib 在 Python 中创建具有不同比例的图表。具体来说,你将学习如何在同一坐标轴上创建两个具有不同左右比例的图表。
虚拟机提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
导入所需库
在开始之前,让我们导入所需的库。在本教程中,我们将使用 Matplotlib 和 NumPy。
import matplotlib.pyplot as plt
import numpy as np
创建一些模拟数据
接下来,我们将创建一些模拟数据用于绘制图表。我们将使用 numpy.arange 创建一个值数组,其范围从 0.01 到 10.0,步长为 0.01。然后,我们将使用 numpy.exp 和 numpy.sin 创建两组数据。
## 创建一些模拟数据
t = np.arange(0.01, 10.0, 0.01)
data1 = np.exp(t)
data2 = np.sin(2 * np.pi * t)
创建图表
现在我们已经有了数据,就可以创建图表了。我们将首先使用 matplotlib.pyplot.subplots() 创建一个坐标轴对象。然后在这个坐标轴对象上绘制第一组数据,并将标签颜色设置为红色。
fig, ax1 = plt.subplots()
color = 'tab:red'
ax1.set_xlabel('time (s)')
ax1.set_ylabel('exp', color=color)
ax1.plot(t, data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)
接下来,我们将使用 ax1.twinx() 方法实例化第二个坐标轴对象,它与第一个坐标轴对象共享相同的 x 轴。然后在这个新的坐标轴对象上绘制第二组数据,并将标签颜色设置为蓝色。
ax2 = ax1.twinx()
color = 'tab:blue'
ax2.set_ylabel('sin', color=color)
ax2.plot(t, data2, color=color)
ax2.tick_params(axis='y', labelcolor=color)
最后,我们将使用 fig.tight_layout() 方法调整图表的布局,并使用 matplotlib.pyplot.show() 显示它。
fig.tight_layout()
plt.show()
查看图表
花点时间查看一下创建的图表。注意两组数据在 y 轴上是如何具有不同比例的。第一组数据用红色绘制,其比例在图表的左侧,而第二组数据用蓝色绘制,其比例在图表的右侧。
总结
恭喜你!你已经学会了如何使用 Matplotlib 在 Python 中创建具有不同比例的图表。具体来说,你已经学会了如何通过使用共享相同 x 轴的两个不同坐标轴,在同一坐标轴上创建具有不同左右比例的两个图表。由于这两个坐标轴是独立的,你可以根据需要使用单独的 matplotlib.ticker 格式化器和定位器。