我想从我的数据框创建一个堆积条形图。我使用MultiIndex重命名行example。我想只绘制最后一列(总Acc)。这就是我到目前为止所做的:
PLOT I GET:
我想要的地图:
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)
但它仍然不起作用!!!
答案 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)