2015-12-13 56 views
1

如何绘制一个Python熊猫多指标数据框作为条形图与组标签?是否有任何绘图库直接支持这个?这SO post显示了一个使用matplotlib的自定义解决方案,但有直接的支持吗?绘制熊猫多指数条形图

举个例子:

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 

...可以在此数据帧可以用组标签like this绘制?

由于提前,

拉菲

+0

下面的Goodword引用的[SO post](https://stackoverflow.com/questions/43545879/bar-chart-with-multiple-labels)解决了这个问题。 – 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

Thanks @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