等轴长宽比

Beginner

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

简介

在数据可视化中,以准确且视觉上吸引人的方式呈现信息非常重要。实现这一点的一种方法是在绘图中设置相等的轴长宽比。这可确保 x 轴和 y 轴按相同比例缩放,从而实现数据的比例表示。在本教程中,我们将学习如何使用 Python 的 Matplotlib 库设置和调整具有相等轴长宽比的绘图。

虚拟机提示

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

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

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

导入必要的库

我们将从导入本教程所需的库开始。我们将使用 Matplotlib 库来创建绘图,并使用 NumPy 库来生成数据。

import matplotlib.pyplot as plt
import numpy as np

绘制一个长宽比不等的圆

我们将首先绘制一个长宽比不等的圆,以说明设置相等长宽比的重要性。

an = np.linspace(0, 2 * np.pi, 100)
fig, axs = plt.subplots(2, 2)

axs[0, 0].plot(3 * np.cos(an), 3 * np.sin(an))
axs[0, 0].set_title('not equal, looks like ellipse', fontsize=10)

生成的绘图将显示一个由于长宽比不等而看起来拉长的圆。

绘制一个长宽比相等的圆

要设置相等的轴长宽比,我们可以使用 axis('equal') 函数。

axs[0, 1].plot(3 * np.cos(an), 3 * np.sin(an))
axs[0, 1].axis('equal')
axs[0, 1].set_title('equal, looks like circle', fontsize=10)

生成的绘图将显示一个比例合适且视觉上吸引人的圆。

在保持轴长宽比相等的同时调整绘图范围

我们还可以在保持轴长宽比相等的情况下调整绘图范围。

axs[1, 0].plot(3 * np.cos(an), 3 * np.sin(an))
axs[1, 0].axis('equal')
axs[1, 0].set(xlim=(-3, 3), ylim=(-3, 3))
axs[1, 0].set_title('still a circle, even after changing limits', fontsize=10)

生成的绘图将显示一个即使在我们更改范围后仍然保持比例的圆。

为等轴长宽比自动调整数据范围

我们还可以使用 set_aspect('equal', 'box') 函数为等轴长宽比自动调整数据范围。

axs[1, 1].plot(3 * np.cos(an), 3 * np.sin(an))
axs[1, 1].set_aspect('equal', 'box')
axs[1, 1].set_title('still a circle, auto-adjusted data limits', fontsize=10)

生成的绘图将显示一个仍然比例合适且视觉上吸引人的圆。

总结

在本教程中,我们学习了如何使用 Python 的 Matplotlib 库来设置和调整具有相等轴长宽比的绘图。通过设置相等的轴长宽比,我们可以确保绘图比例合适且视觉上吸引人,从而更易于解释数据。