有没有办法强制 pyplot (matplotlib) 的刻度值可被自动刻度间隔整除?
我真的很喜欢 pyplot 可以根据数据自动调整刻度间隔,所以我不必关心它。但我真的希望它确实使用可被该间隔整除的值。
例如,如果它决定间隔为 5,则应使用值 5,10,15,20...,而不是像下面的示例中那样使用 4,9,14,19。我怎样才能轻松修复它?
最佳答案
您可以使用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]
关于python - Pyplot 的刻度值可以被自动间隔整除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37151365/