我有一年中每分钟由不同用户发送的聊天消息数据。索引列由熊猫的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轴标签格式不正确:
如果我尝试使用与折线图相同的代码设置条形图上的x轴格式,则所有4个子图的所有x轴标签都会消失。另外,如果我在创建图时设置sharex=True
,也会发生同样的事情。
过去,在没有熊猫的情况下仅执行matplotlib来执行此操作,我发现我需要将x轴日期转换为numpy浮点数,然后可以将这些浮点数格式简单地设置为日期以显示在图表上。我认为pandas .plot
方法执行此操作的方式不同,因此此方法无效。
一些Google搜索发现条形图可能正在使用分类数据。至少我只想将条形图上的x轴标签重新格式化为dd-mmm
格式。在所有4个图上共享x轴也很好,因此在图上缩放/平移可控制所有4个图。