data
是一个pandas数据框,在具有多个属性的条目上具有日期时间索引。其中一个属性称为STATUS
。我尝试创建每天条目数的图表,按STATUS
属性细分。
我第一次尝试使用pandas.plot:
for status in data["STATUS"].unique():
entries = data[data["STATUS"] == status]
entries.groupby(pandas.TimeGrouper("D")).size().plot(figsize=(16,4), legend=True)
结果:
我应该如何修改上面的代码,以便图例显示曲线属于哪个状态?
此外,请随意建议一种不同的方法来实现这种可视化(按时间间隔分组时间序列,计数条目,并按条目属性分解)。
答案 0 :(得分:0)
我相信,如果对代码进行以下更改,您将获得所需内容:
fig, ax = plt.subplots()
for status in data["STATUS"].unique():
entries = data[data["STATUS"] == status]
dfPlot = pandas.DataFrame(entries.groupby(pandas.TimeGrouper("D")).size())
dfPlot.columns=[status]
dfPlot.plot(ax=ax, figsize=(16,4), legend=True)
发生的事情是size
函数的输出为您提供了Series
类型,其列中没有名称。因此,从Dataframe
创建Series
并更改列名就可以了。