2015-12-13 2 views
1

Как создать график данных Pindas Pindas multiindex в виде гистограммы с ярлыками групп? Поддерживает ли какая-либо из библиотек заговора? Это SO post показывает пользовательское решение с использованием matplotlib, но есть ли прямая поддержка для него?Построение диаграммы штрих-кода Pandas Multiindex

В качестве примера:

quarter company 
Q1  Blue  100 
     Green  300 
Q2  Blue  200 
     Green  350 
Q3  Blue  300 
     Green  400 
Q4  Blue  400 
     Green  450 
Name: count, dtype: int64 

... это может dataframe быть нанесены с группой этикетки like this?

Спасибо заранее,

Рафи

+0

[SO post] (https://stackoverflow.com/questions/43545879/bar-chart-with-multiple-labels), оговоренный Goodword ниже, решает это. – rbinnun

ответ

4
import pandas as pd 

data = pd.DataFrame([ 
     ('Q1','Blue',100), 
     ('Q1','Green',300), 
     ('Q2','Blue',200), 
     ('Q2','Green',350), 
     ('Q3','Blue',300), 
     ('Q3','Green',400), 
     ('Q4','Blue',400), 
     ('Q4','Green',450), 
    ], 
    columns=['quarter', 'company', 'value'] 
) 
data = data.set_index(['quarter', 'company']).value 

data.unstack().plot(kind='bar', stacked=True) 

stacked bar chart from multiindex

Если вы не хотите, чтобы стек ваш гистограмму:

data.unstack().plot(kind='bar') 

not-stacked bar chart

+0

Спасибо @Goodword, могут ли эти метки быть сгруппированы? как [этот график] (https://i.stack.imgur.com/R5PJg.png)? – rbinnun

+0

Несомненно. Просто не передавайте аргумент 'stacked = True'. Попробуйте это вместо: 'data.unstack(). Plot (kind = 'bar')' – Goodword

+1

Теперь я вижу, что метки в изображении, которые вы отправили, немного отличаются от моей коррекции. [Это сообщение SO] (https://stackoverflow.com/questions/43545879/bar-chart-with-multiple-labels) должно помочь вам с этими ярлыками. – Goodword