您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在同一图中绘制多个堆叠的条形图

在同一图中绘制多个堆叠的条形图

这应该按照您想要的方式工作:

import pandas as pd

df = pd.DataFrame(dict(
    A=[1, 2, 3, 4],
    B=[2, 3, 4, 5],
    C=[3, 4, 5, 6],
    D=[4, 5, 6, 7]))

import matplotlib.pyplot as plt
%matplotlib inline
fig = plt.figure(figsize=(20, 10))

ab_bar_list = [plt.bar([0, 1, 2, 3], df.B, align='edge', width= 0.2),
               plt.bar([0, 1, 2, 3], df.A, align='edge', width= 0.2)]

cd_bar_list = [plt.bar([0, 1, 2, 3], df.D, align='edge',width= -0.2),
               plt.bar([0, 1, 2, 3], df.C, align='edge',width= -0.2)]

在此处输入图片说明

请记住,width一组的价值必须为正,第二组的价值为负。使用alignedge为好。 你必须把与最大值酒吧的最低值,前杠,如果你想在酒吧中的另一条战线,变化出现堆积在彼此之上,而不是一个df.B,并df.Ddf.B + df.Adf.D + df.C,分别。如果没有明显或组成的模式,请使用alignbyedgewidthmethod以及@piRSquared建议的模式。 另一种选择是访问绿色栏中的每个值,并将其与红色栏中的相应值进行比较,并进行相应的绘制(此操作中不必要的工作太多)。

其他 2022/1/1 18:33:51 有339人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶