2016-04-30 2 views
0

Может кто-нибудь помочь мне определить лучший способ визуализации 3 столбцов в пандах? Я попытался использовать многострочный график и искал другие решения на SO, но ничего не получилось. Любая помощь приветствуется. Вот фиктивная панды dataframe:Pandas plot on 3 variables

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

Можете ли вы подробнее рассказать о том, почему линейчатой ​​участок не работает? –

+0

Он работает, но цифра полностью сжата, потому что у меня около 10000 строк в dataframe. Если возможно, я хотел бы иметь штрих-график с переменной «Name» по оси x, цветом, определяемым «часом», и высотой каждой цветной части панели, определяемой переменной «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

Большое спасибо за ответ. Мне было интересно, возможно ли это сделать без «морского обихода», и может ли это быть сделано так, как я предполагал, с одним баром для имени и другого цвета? Например, просто взглянув на эту цифру, я не уверен, принадлежит ли 'час 7'' Kiz' или 'Nem'. – Makaroni

+0

Новый ответ должен соответствовать! Большое спасибо! – Makaroni