我想为我的数据创建堆叠子图。我想要按“类型”、“周”作为我的 x 轴的子图,以及要堆叠的“分数”。
np.random.seed(1234)
test = pd.DataFrame({'week':[1,1,1,1,1,1,2,2,2,2,2,2],
'score':np.random.uniform(0,1,12),
'type': [0,1,0,1,0,1,0,1,0,1,0,1],
'type2':[3,3,4,4,5,5,3,3,4,4,5,5]})
这就是我现在所拥有的,如果我添加一个参数“subplot = True”
test.groupby(['week','type','type2']).agg('sum').unstack(1).plot(kind='bar', subplots=True)
最佳答案
我认为 - 但我不确定 - 很难组合 stacked
和 subplots
选项。所以这是一个解决方案,我希望产生预期的输出,但可能会有所改进。
# Test data
np.random.seed(1234)
test = pd.DataFrame({'week':[1,1,1,1,1,1,2,2,2,2,2,2],
'score':np.random.uniform(0,1,12),
'type': [0,1,0,1,0,1,0,1,0,1,0,1],
'type2':[3,3,4,4,5,5,3,3,4,4,5,5]})
grouped = test.groupby(['type','week','type2']).agg('sum')
# Preparing plots
fig, axes = plt.subplots(nrows=2)
for group_name, group in grouped.groupby(level=0):
group.index = group.index.droplevel(0)
group = group.unstack(1)
group.columns = group.columns.droplevel()
group.plot(kind='bar', stacked=True, ax=axes[group_name], title='type: ' + str(group_name))
关于python - 如何用 Pandas 创建堆叠子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32701606/