【发布时间】:2021-11-05 02:51:36
【问题描述】:
我有一个数据框,其中索引是每个月的第一个日期,size 列是该月的频率,例如
在数据框上使用.index 确认索引的类型是DatetimeIndex:
DatetimeIndex(['2006-12-01', ...],
dtype='datetime64[ns]', name='created_at_month', length=175, freq=None)
在 DataFrame 上使用 .plot() 我可以每月生成一个折线图:
但是,它只在 x 轴上每隔一年列出一次,我希望它在轴上列出每一年。
我希望能够做到
ax.xaxis.set_major_locator(mdates.YearLocator(1))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
但是这根本不输出任何标签。
如果我添加一个次要格式化程序 (ax.xaxis.set_minor_formatter(mdates.DateFormatter('%d %m %Y'))),我会得到:
我在这里做错了什么导致日期改变?
相关版本有:
- Matplotlib:3.3.4
- 熊猫:1.2.4
- Python:3.8.8
【问题讨论】:
-
让我猜你想在 X 轴上显示所有年份?
-
是的,我希望将所有年份标记为主要刻度,然后理想情况下将所有月份标记为次要刻度,但我希望先工作几年
-
您介意分享一个可重现的最小示例吗?
-
这是一个最小的例子,我会检查第一个答案是否解决了这个问题colab.research.google.com/drive/…
标签: python pandas dataframe datetime matplotlib