简单的 Matplotlib 坐标轴

Beginner

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

简介

在本实验中,我们将学习如何使用 Matplotlib 创建一条简单的轴线。我们将使用 mpl_toolkits.axisartist.axislines 库来创建一条带有 x 轴和 y 轴标签以及右侧 y2 轴标签的轴线。我们还将学习如何隐藏顶部和右侧坐标轴,并使 x 轴线在 y = 0 处可见。

虚拟机使用提示

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

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

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

导入库

我们首先导入必要的库。我们将使用 Matplotlib 和 mpl_toolkits.axisartist.axislines 库。

import matplotlib.pyplot as plt
from mpl_toolkits.axisartist.axislines import AxesZero

创建图形和子图

接下来,我们创建一个图形,并添加一个使用 AxesZero 的子图。这将创建一条带有 x 轴和 y 轴标签的轴线,但没有刻度线或网格。

fig = plt.figure()
fig.subplots_adjust(right=0.85)
ax = fig.add_subplot(axes_class=AxesZero)

隐藏顶部和右侧坐标轴

由于我们只需要左侧和底部坐标轴,现在我们将隐藏顶部和右侧坐标轴。

ax.axis["right"].set_visible(False)
ax.axis["top"].set_visible(False)

使 x 轴线在 y = 0 处可见

现在我们要让 x 轴线在 y = 0 处可见。这通过将 xzero 轴设置为可见来实现。

ax.axis["xzero"].set_visible(True)
ax.axis["xzero"].label.set_text("Axis Zero")

设置坐标轴范围和标签

现在我们将 y 轴范围设置为 (-2, 4),并设置 x 轴和 y 轴标签。

ax.set_ylim(-2, 4)
ax.set_xlabel("Label X")
ax.set_ylabel("Label Y")

创建第二个 y 轴

最后,我们将在图表右侧创建一个新的 y2 轴,其偏移量为 (20, 0) 并为其添加标签。

ax.axis["right2"] = ax.new_fixed_axis(loc="right", offset=(20, 0))
ax.axis["right2"].label.set_text("Label Y2")

总结

我们已经学习了如何使用 Matplotlib 创建一条简单的坐标轴。我们首先导入了必要的库,然后使用 AxesZero 创建了一个图形和子图。接着,我们隐藏了顶部和右侧坐标轴,使 x 轴线在 y = 0 处可见,设置了坐标轴范围和标签,最后在图表右侧创建了一个新的 y2 轴。