每10年如何设置x轴

问题描述 投票:0回答:1

我对绘图时间序列数据有疑问。我想每10年显示一次x轴,但每年只能显示一次。任何人都可以提供有关此问题的解决方案?

fig,ax = plt.subplots(figsize=(11,4))
ax.plot(t, data, '0.1', label ='Data')
ax.plot(t, df_filt, 'C1', label='Lowpass Filter, cutoff=50 days')
ax.set_ylabel('Length of Day')
ax.set_xlabel('Time')
ax.legend()
ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
ax.grid(True)

enter image description here

matplotlib time-series axis
1个回答
1
投票

YearLocator takes an argument base=指定刻度之间的时间间隔

示例:

YearLocator

base=

编辑如果您希望日期以基数的非整数开始,那么您可以想到两种解决方案。

  • 正确的解决方案是遵循建议import matplotlib.dates as mdates t = mdates.drange(mdates.datetime.date(1900,1,1), mdates.datetime.date(2020,12,31), delta=mdates.datetime.timedelta(days=365)) data = np.random.random(size=t.shape) fig, ax = plt.subplots() ax.plot(t, data, '0.1', label ='Data') ax.set_ylabel('Length of Day') ax.set_xlabel('Time') ax.legend() ax.xaxis.set_major_locator(mdates.YearLocator(base=10)) ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y')) ax.grid(True)
  • 但是,一个更简单的解决方案可能是设置年度滴答,但每个滴答中仅显示一个]
  • 代码:

enter image description here

in this answer

© www.soinside.com 2019 - 2024. All rights reserved.