在x轴上,我有几天(例如0-5000天)。现在,我想将其除以365天,从而将其分为几年,以便从0-365表示2016、366-2 * 365:2017等。
执行此操作的最佳方法是什么?
是否有类似ax.tickValues(xrange(0,5000,365))
的东西?
答案 0 :(得分:0)
以下是如何执行此操作的一个示例。这个想法是这样的:首先从2016
开始生成要显示的刻度标签(年)。 int(np.ceil(5000/365))
此处仅提供轴上显示的年数。接下来,生成放置这些刻度的位置。目前,我将0-365、365-730等中心用作刻度线,因为您希望将0-365标记为2016,依此类推。
您可以采用以下解决方案来解决您的问题。
from matplotlib.ticker import AutoMinorLocator
fig, axes = plt.subplots(figsize=(10, 6))
x = range(3000)
plt.plot(x,x)
tcks = [2016+i for i in range(int(np.ceil(3000/365)))]
locs = [365*i for i in range(int(np.ceil(3000/365)))]
plt.xticks(locs, tcks)
axes.xaxis.set_minor_locator(AutoMinorLocator(12))