我想为我的数据创建堆叠子图。我想按“类型”、“周”作为我的 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/