首页 > 解决方案 > 在 plt.plot 上将 pd.Grouper 转换为人类可读的格式

问题描述

我正在使用 Pandas 和 Matplotlib 从 SQL 数据库中绘制一些数据。

这是我的步骤:

df = df.groupby(Grouper(key='published_at', freq='MS'))['id'].count()
ax = df.plot.bar(position=0.5, width=0.4, label="Items")

这就是我的情节:

在此处输入图像描述

我想将月份显示为“2019-04”,所以“YM”,但我不知道该怎么做。

由于我对 Python 完全陌生,因此将不胜感激任何帮助。谢谢 !

标签: pythonpandasdataframematplotlib

解决方案


以下适用于您的示例数据,但可能会因很多日期而失败:

tmp_df = df.resample('MS',on='published_at').id.count()
plt.figure(figsize=(10,6))
plt.bar(tmp_df.index.strftime("%Y-%m"), tmp_df)
plt.show()

输出:

在此处输入图像描述


推荐阅读