首页 > 解决方案 > python - 如何在特定位置的x轴上设置刻度

问题描述

在我的 x 轴上,我有几天(例如 0-5000 天)。现在我想通过除以 365 天将其划分为年份,这样从 0-365 会说 2016、366 - 2*365: 2017 等。

最好的方法是什么?

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

标签: pythonmatplotlib

解决方案


以下是您如何做到这一点的一个示例。想法如下:首先生成要显示的刻度标签(年份),从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))

在此处输入图像描述


推荐阅读