首页 > 解决方案 > Matplotlib:将每日刻度更改为月刻度,同时保持绘图相同

问题描述

我有一个这样的数据框:

date_deaths = data[['date', 'deaths']]
deaths_by_date = date_deaths.groupby('date')['deaths'].sum()

我无法让我的情节显示 xticks。但是,当我在没有格式化的情况下进行绘图时,我会得到每日刻度,我想要按月刻度

在此处输入图像描述

情节代码:

months = mdates.MonthLocator()

#Plot deaths over time.

fig, ax = plt.subplots(figsize = (12,5))
ax.plot(deaths_by_date, 'r--')
plt.ylabel("Deaths", fontsize = 12)
plt.title('Covid-19 Deaths in the United States', fontsize = 14)

#Format ticks
ax.xaxis.set_major_locator(months)
ax.grid(True)

plt.show()

任何帮助,将不胜感激!

更新:原来我只需要将索引更改为日期时间。这段代码很好地解决了这个问题。

deaths_by_date.index = pd.to_datetime(deaths_by_date.index)

标签: pythonpandasdataframedatetimematplotlib

解决方案


推荐阅读