在 Matplotlib 绘图中对齐 y 轴标签

Beginner

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

简介

在本实验中,你将学习如何在 Matplotlib 绘图中对齐 y 轴标签。y 轴标签的对齐对于提高绘图的可读性非常重要,特别是当有多个子图时。

虚拟机使用提示

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

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

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

导入所需库

第一步是导入所需的库。在本实验中,我们将使用 Matplotlib 和 NumPy。

import matplotlib.pyplot as plt
import numpy as np

创建绘图

下一步是创建绘图。我们将创建一个包含两个子图的绘图,其中 y 轴标签未对齐。

def make_plot(axs):
    box = dict(facecolor='yellow', pad=5, alpha=0.2)

    ## Fixing random state for reproducibility
    np.random.seed(19680801)
    ax1 = axs[0, 0]
    ax1.plot(2000*np.random.rand(10))
    ax1.set_title('ylabels not aligned')
    ax1.set_ylabel('misaligned 1', bbox=box)
    ax1.set_ylim(0, 2000)

    ax3 = axs[1, 0]
    ax3.set_ylabel('misaligned 2', bbox=box)
    ax3.plot(np.random.rand(10))

    ax2 = axs[0, 1]
    ax2.set_title('ylabels aligned')
    ax2.plot(2000*np.random.rand(10))
    ax2.set_ylabel('aligned 1', bbox=box)
    ax2.set_ylim(0, 2000)

    ax4 = axs[1, 1]
    ax4.plot(np.random.rand(10))
    ax4.set_ylabel('aligned 2', bbox=box)

fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)
plt.show()

自动对齐 y 轴标签

第三步是使用.Figure.align_ylabels方法自动对齐 y 轴标签。

fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)
fig.align_ylabels(axs[:, 1])
plt.show()

手动对齐 y 轴标签

第四步是使用 y 轴对象的~.Axis.set_label_coords方法手动对齐 y 轴标签。

fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)

labex = -0.3  ## axes coords

for j in range(2):
    axs[j, 1].yaxis.set_label_coords(labex, 0.5)

plt.show()

总结

在本实验中,你学习了如何在 Matplotlib 绘图中对齐 y 轴标签。y 轴标签的对齐对于提高绘图的可读性很重要,特别是当有多个子图时。我们介绍了两种对齐 y 轴标签的方法,一种是使用简短的.Figure.align_ylabels调用,另一种是手动对齐标签的方法。

结论

恭喜你!你已经学会了如何在 Matplotlib 绘图中对齐 y 轴标签。继续练习并探索 Matplotlib 库,以提高你的可视化技能。

总结

恭喜你!你已经完成了“对齐 y 轴标签”实验。你可以在 LabEx 中练习更多实验来提升你的技能。