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

python - 如何使用 Pandas 创建堆叠子图-LMLPHP

最佳答案

我认为 - 但我不确定 - 很难将 stackedsubplots 选项结合起来。所以这里有一个解决方案——我希望——预期的输出,但可能会得到改进。

# 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 创建堆叠子图-LMLPHP

关于python - 如何使用 Pandas 创建堆叠子图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32701606/

10-10 21:15