使用pandas .p​​lot方法绘制条形图和折线图以及相同的x轴

时间:2020-06-15 15:13:52

标签: pandas matplotlib

我有一年中每分钟由不同用户发送的聊天消息数据。索引列由熊猫的datetime对象组成,这些对象将构成绘图的x轴。

要绘制2个折线图(一个累积量,一个累积量,一个非累积量),我已重新采样以计算每天发送的邮件,并简单地使用:

df.cumsum().plot(ax=axs[i], color=colours)

我还格式化了x轴:

ax.xaxis.set_major_locator(mdates.WeekdayLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter("%d %b"))

我还试图在同一图中绘制2个条形图(堆叠和分组)。如果我想按月重新采样以绘制条形图:

df.resample("M").sum().plot(ax=axs[i], kind="bar", width=0.8, color=colours)

默认情况下,条形图上的x轴标签格式不正确:

enter image description here

如果我尝试使用与折线图相同的代码设置条形图上的x轴格式,则所有4个子图的所有x轴标签都会消失。另外,如果我在创建图时设置sharex=True,也会发生同样的事情。

过去,在没有熊猫的情况下仅执行matplotlib来执行此操作,我发现我需要将x轴日期转换为numpy浮点数,然后可以将这些浮点数格式简单地设置为日期以显示在图表上。我认为pandas .plot方法执行此操作的方式不同,因此此方法无效。

一些Google搜索发现条形图可能正在使用分类数据。至少我只想将条形图上的x轴标签重新格式化为dd-mmm格式。在所有4个图上共享x轴也很好,因此在图上缩放/平移可控制所有4个图。

0 个答案:

没有答案