创建具有双轴的折线图

MatplotlibMatplotlibBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将学习如何使用 Python 中的 Matplotlib 库创建具有双轴的折线图。我们将在同一图表上绘制两组具有不同比例的数据。当我们想要比较两个具有不同测量单位的相关变量时,这非常有用。

虚拟机提示

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

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

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

导入库

我们将首先导入必要的库。我们需要 matplotlib.pyplot 来创建图表,以及 mpl_toolkits.axes_grid1 来创建双轴。

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import host_subplot

创建图表

接下来,我们将通过定义宿主轴和寄生轴来创建图表。宿主轴将用于主数据,寄生轴将用于辅助数据。

host = host_subplot(111)
par = host.twinx()

设置标签

我们将为两个轴设置标签以及图表的标题。

host.set_xlabel("Distance")
host.set_ylabel("Density")
par.set_ylabel("Temperature")
plt.title("Density and Temperature vs Distance")

添加数据

我们将通过使用 plot 函数把数据添加到图表中。我们会将每条线赋给一个变量,以便之后可以引用它。

p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par.plot([0, 1, 2], [0, 3, 2], label="Temperature")

设置图表格式

我们将通过设置图例、标签颜色和线条颜色来对图表进行格式设置。

host.legend()
host.yaxis.get_label().set_color(p1.get_color())
par.yaxis.get_label().set_color(p2.get_color())

显示图表

最后,我们将使用 show 函数来显示图表。

plt.show()

总结

在这个实验中,我们学习了如何使用 Python 中的 Matplotlib 库创建一个具有双轴的折线图。我们使用 host_subplottwinx 函数来创建双轴,并使用 plot 函数添加数据。我们通过设置图例、标签颜色和线条颜色来格式化图表。最终得到的图表使我们能够比较两个具有不同计量单位的相关变量。