python-如何在特定位置的x轴上设置刻度

时间:2018-10-06 09:54:44

标签: python matplotlib

在x轴上,我有几天(例如0-5000天)。现在,我想将其除以365天,从而将其分为几年,以便从0-365表示2016、366-2 * 365:2017等。

执行此操作的最佳方法是什么?

是否有类似ax.tickValues(xrange(0,5000,365))的东西?

1 个答案:

答案 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))

enter image description here