Matplotlib 刻度位置自定义

MatplotlibMatplotlibBeginner
立即练习

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

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

简介

在本实验中,我们将学习如何在Matplotlib中设置刻度自动定位的行为。默认情况下,Matplotlib会选择刻度的数量和刻度位置,以便轴上有合理数量的刻度,并且它们位于 “整数” 位置。但是,绘图的边缘可能没有刻度。我们将学习如何将 axes.autolimit_mode 切换为 'round_numbers',以保持刻度为整数,并且在边缘也有刻度。

虚拟机使用提示

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

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

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

无 round_numbers 自动限制模式的散点图

在这一步中,我们将创建一个没有 round_numbers 自动限制模式的散点图,并观察刻度自动定位的行为。

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(19680801)

fig, ax = plt.subplots()
dots = np.linspace(0.3, 1.2, 10)
X, Y = np.meshgrid(dots, dots)
x, y = X.ravel(), Y.ravel()
ax.scatter(x, y, c=x+y)
plt.show()

采用 round_numbers 自动限制模式的散点图

在这一步中,我们将把 axes.autolimit_mode 切换为 'round_numbers',并创建一个散点图,使刻度保持为整数,同时在边缘也有刻度。

plt.rcParams['axes.autolimit_mode'] = 'round_numbers'

fig, ax = plt.subplots()
ax.scatter(x, y, c=x+y)
plt.show()

带有额外边距的散点图

在这一步中,我们将在仍然遵循整数自动限制模式的同时,使用 .Axes.set_xmargin / .Axes.set_ymargin 在数据周围设置额外的边距。

fig, ax = plt.subplots()
ax.scatter(x, y, c=x+y)
ax.set_xmargin(0.8)
plt.show()

总结

在本实验中,我们学习了如何通过将 axes.autolimit_mode 切换为 'round_numbers' 来设置Matplotlib中刻度自动定位的行为。我们还学习了如何在仍然遵循整数自动限制模式的同时,在数据周围设置额外的边距。这些技巧可用于自定义轴上的刻度位置,并提高绘图的可读性。