Pyplot在可被自动间隔整除的值处勾选?

时间:2016-05-11 01:00:23

标签: python matplotlib

有没有办法强制pyplot(matplotlib)将滴答值设置为可以通过自动滴答间隔整除的值?

我真的很喜欢pyplot可以根据数据自动调整滴答间隔,所以我不必关心它。但我真的希望它确实使用可被该区间整除的值。

例如,如果它确定间隔为5,则应使用值5,10,15,20 ...而不是4,9,14,19,如下例所示。我怎样才能轻松解决它?

Nice interval but not at divisible values

1 个答案:

答案 0 :(得分:1)

您可以使用matplotlib.ticker.Locator课程在任意位置找到您的刻度线。特别是在你的情况下,我猜你想使用MultipleLocator。只需添加您的程序

from matplotlib.ticker import MultipleLocator
ax = plt.gca()
ax.get_xaxis().set_major_locator(MultipleLocator(base=5))

你会全力以赴。

<强>更新

要获得基数,您可以检查默认的AutoLocator刻度位置(在致电plt.plot之后)并获得彼此相邻的任何位置之间的差异:

ticks = ax.get_xticks()
base = ticks[1] - ticks[0]