2016-04-30 92 views
0

有人可以帮助我定义在熊猫中可视化3列的最佳方式吗?我尝试使用堆积条形图并在SO上搜索其他解决方案,但没有任何工作。任何帮助表示赞赏。这是一个虚拟的大熊猫数据帧:3个变量的熊猫情节

Name hour var 
Nem  0  2 
Kiz  4  1 
Hue  5  2 
Kiz  0  3 
Nem  7  7 
+0

你能告诉更多的为什么堆叠柱状图中不起作用? –

+0

它的工作原理,但数字完全压缩,因为我在数据框中有大约10000行。如果可能的话,我希望在x轴上有'Name'变量,'hour'定义的颜色以及变量'var'定义的每个颜色部分的高度。 – Makaroni

回答

1

UPDATE:是你想要的吗?

(df.pivot_table(index='Name', columns='hour', values='var', 
       aggfunc='sum', fill_value=0) 
    .plot.bar(stacked=True) 
) 

enter image description here

说明:

In [55]: (df.pivot_table(index='Name', columns='hour', values='var', 
    ....:     aggfunc='sum', fill_value=0) 
    ....:) 
Out[55]: 
hour 0 3 4 5 7 
Name 
Hue 0 6 0 2 0 
Kiz 3 0 1 0 0 
Nem 2 5 0 0 7 

OLD答案:

您可以使用seaborn模块为:

import seaborn as sns 

sns.barplot(x='Name', y='var', hue='hour', data=df, saturation=0.8) 

enter image description here

数据:

In [20]: df 
Out[20]: 
    Name hour var 
0 Nem  0 2 
1 Nem  3 5 
2 Kiz  4 1 
3 Hue  5 2 
4 Kiz  0 3 
5 Nem  7 7 
6 Hue  3 6 
+0

非常感谢您的回答。我想知道,是否有可能没有'seaborn'做到这一点,并且可以按照我的意愿为每个名称和不同颜色的酒吧做到这一点?例如,只看这个数字,我不确定'小时7'属于'Kiz'还是'Nem'。 – Makaroni

+0

新的答案应该适合!非常感谢你! – Makaroni