0

我有一个如下的数据框。| 日期| 一个 | 乙| |-- | ---- | -- | | 1月20日| 205.0| 232.0 | 2月20日| 328.0 | 338.0

我将 Date 列转换为 datetime 对象,将其设置为索引并绘制图表。

df['Date'] = pd.to_datetime(df['Date'],format="%b-%y") 
df = df.set_index("Date")
df.plot(kind='line', figsize=(10,5), color=["#FDCE0D","#3A424A"])

但是,我得到以下 x 轴,其中年份在 1 月的每个实例下。 在此处输入图像描述

有没有办法让年份紧挨着每个月,例如“2018 年 1 月”?我知道我可以执行 a .strftime("%b %Y)但我想将其保留为日期时间对象,因为我正在使用日期时间范围将阴影覆盖到图形上。

当我尝试按照以下方式对其进行格式化时,我得到了这个。

date_fmt = mdates.DateFormatter('%b %Y')
ax.xaxis.set_major_formatter(date_fmt)

在此处输入图像描述

4

1 回答 1

0

如果将绘图分配给变量 (ax),则可以执行以下操作。

import matplotlib.dates as mdates

ax.set_xticks(df.index)
date_fmt = mdates.DateFormatter('%b %Y')
ax.xaxis.set_major_formatter(date_fmt)
于 2021-09-28T14:20:31.013 回答