关于大熊猫时间序列图的传说仅显示“无”

时间:2017-10-26 13:16:54

标签: python pandas matplotlib time-series data-visualization

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)

结果:

enter image description here

我应该如何修改上面的代码,以便图例显示曲线属于哪个状态?

此外,请随意建议一种不同的方法来实现这种可视化(按时间间隔分组时间序列,计数条目,并按条目属性分解)。

1 个答案:

答案 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并更改列名就可以了。