首页 > 解决方案 > 如何自动获取 matplotlib 中第一个和最后一个轴标签的“好”值?

问题描述

在此图中,matplotlib 自动隐藏第一个和最后一个轴标签。但是,所需的行为是始终显示第一个轴标签和最后一个轴标签,并将其显示为“不错”的值。所谓“不错”的值,我的意思是在轴的两个边界上都应该出现一个主要的抽动。例如,在下图中,x 轴将从 -0.1 开始,到 1.5 结束。同样,y 轴将从 -0.25 开始,到 2.00 结束。如何在 Matplotlib 中实现这一点?

在此先感谢您的帮助。

在此处输入图像描述

标签: pythonmatplotlibaxisaxis-labels

解决方案


我解决了这个问题,首先让我们matplotlib找到理想的刻度位置,然后设置轴限制,以便在轴的两个边缘添加一个额外的刻度。

plt.figure()
plt.plot(xdata, data)
loc, labels = plt.xticks()    #returns the current tics and lables.
min_new = loc[0] - (loc[1]-loc[0])
max_new = loc[len(loc)-1] + (loc[1]-loc[0])
plt.xlim(left=min_new, right=max_new)
plt.gca().xaxis.set_major_locator(AutoLocator())
plt.gca().yaxis.set_major_locator(AutoLocator())
plt.show()

编辑: 同样可以通过将轴限制扩展到边缘的隐藏刻度来实现。IE,

loc, labels = plt.xticks()
plt.xlim(left=loc[0], right=loc[len(loc)-1])

推荐阅读