如何在Pandas中使用行'进行堆积条形图。名字呢?

时间:2016-10-17 16:36:58

标签: python-3.x pandas visualization

我想从我的数据框创建一个堆积条形图。我使用MultiIndex重命名行example。我想只绘制最后一列(总Acc)。这就是我到目前为止所做的:

我的数据框: enter image description here

PLOT I GET:

enter image description here

我想要的地图:

enter image description here 这是我写的代码:

    e=df['Total Acc'].round(4)*100   #Here I isolate the last column
    e.plot.bar(stacked=True)   

编辑:

我改进了代码。

   e=df['Total Acc'].round(4)*100
   row_awa = e.loc['AWA'] 
   row_rem = e.loc['REM'] 
   row_s1 = e.loc['S1'] 
   row_s2 = e.loc['S2'] 
   row_sws = e.loc['SWS'] 
   row_stades = e.loc['stades'] 

   row_awa.plot.bar(stacked=True) 
   row_rem.plot.bar(stacked=True) 
   row_s1.plot.bar(stacked=True) 
   row_s2.plot.bar(stacked=True) 
   row_sws.plot.bar(stacked=True) 
   row_stades.plot.bar(stacked=True) 

但它仍然不起作用!!!

enter image description here

1 个答案:

答案 0 :(得分:2)

我很感激有人正在绘制一张带有颜色和一切图表的图表。使用以前的数据帧,您可以这样做:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(24, 10))
df['Total Acc'] = df.sum(1)
lvl0 = ['AWA', 'REM', 'S1', 'S2', 'SWS', 'stades']
lvl1 = ['10x20', '10x10', '10x5', '10x2', ]
df.index = pd.MultiIndex.from_product([lvl0, lvl1])

现在你想要一个'堆积'条形图。通过重置该索引来撤消您的工作,转动表并绘制图表:

df.reset_index().pivot('level_0', 'level_1', 'Total Acc').plot.bar(stacked=True)

enter image description here