Pandas - 绘制系列图

4

我有一个以日期时间列为索引的数据框,并且我会获得各种时间范围内的value_count()。例如,

data['leadsource_ch_disp_name'].ix[rng[0]].value_counts()

返回值

Unknown        223
Sponsorship    889
Reseller       145
Referral        52
dtype: int64

这是一个系列。我希望用5个不同的时间范围(rng[i],其中i=[0,..,4])来完成。因此,我剩下了5个系列。我想要做的是绘制这5个系列(在同一张图上),使得x轴是系列名称,y轴是值。我希望它是一个有4条线的线状图(对应未知、赞助、经销商和推荐)。

我尝试了以下方法:

rng0=data['leadsource_ch_disp_name'].ix[rng[0]].value_counts()
rng1=data['leadsource_ch_disp_name'].ix[rng[1]].value_counts()
rng2=data['leadsource_ch_disp_name'].ix[rng[2]].value_counts()
rng3=data['leadsource_ch_disp_name'].ix[rng[3]].value_counts()
rng4=data['leadsource_ch_disp_name'].ix[rng[4]].value_counts()
rng5=data['leadsource_ch_disp_name'].ix[rng[5]].value_counts()
pd.concat([rng0,rng1,rng2,rng3,rng4,rng5],axis=1).plot()

然而,这并没有返回我想要的结果。它创建了一个图表,其中 x 轴是 Referral、Reseller、Sponsorship 和 Unknown,有 5 条线代表 5 个不同系列。
1个回答

3

由于plot()为每列绘制一条线,因此请先转置数据框。

pd.concat([rng0,rng1,rng2,rng3,rng4,rng5],axis=1).T.plot()

1
哇,我以为会比那更复杂 :) 谢谢! - user1893354

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接