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

Python Pyplot在可被自动间隔整除的值处打勾?,python,matplotlib,Python,Matplotlib,有没有办法强制pyplot(matplotlib)的刻度值可以被自动刻度间隔整除 我真的很喜欢pyplot可以根据数据自动调整滴答声的间隔,所以我不必关心它。但我真的希望它使用可以被这个间隔整除的值 例如,如果它决定间隔为5,则应使用值5、10、15、20。。。而不是下面例子中的4,9,14,19。我怎样才能轻松地修复它 您可以使用matplotlib.ticker.Locator类在任何地方找到您想要的记号。特别是在你的情况下,我想你会喜欢使用。只需加入你的程序 from matplotlib

有没有办法强制pyplot(matplotlib)的刻度值可以被自动刻度间隔整除

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

例如,如果它决定间隔为5,则应使用值5、10、15、20。。。而不是下面例子中的4,9,14,19。我怎样才能轻松地修复它


您可以使用
matplotlib.ticker.Locator
类在任何地方找到您想要的记号。特别是在你的情况下,我想你会喜欢使用。只需加入你的程序

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]

非常感谢。我的问题是,默认情况下我不知道基数。有没有办法从pyplot中获取基数?基准由pyplot根据显示的年数自动设置。在这种情况下,它是5,但很容易是2或10或完全不同的数字。我正在寻找一般的解决方案。你可以得到相邻刻度之间的差异,请参阅更新