从数据框创建分组的条形图

时间:2018-07-13 16:17:40

标签: python python-3.x pandas matplotlib

示例数据框

                 continent  avg_count_country  avg_age
Male        0      Asia                 55        5
            1    Africa                 65       10
            2    Europe                 75        8
Female      0      Asia                 50        7
            1    Africa                 60       12
            2    Europe                 70        0
Transgender 0      Asia                 30        6
            1    Africa                 40       11
            2    America                80       10

对于分组的条形图:

X轴将具有MaleFemaleTransgender

Y轴将具有总数

每个MaleFemaleTransgender中的3条

男性和女性将分为3个小节-AsiaAfricaEurope

变性人将分为3个小节-AsiaAfricaAmerica

4种独特的颜色或传说[亚洲,非洲,欧洲,美国]

我可以像绘制每个条形图一样手动完成

bars1 = //manually giving values
bars2 = //manually giving values
......bars3, bars4

plt.bar(r1, bars1, color='#7f6d5f', width=barWidth, edgecolor='white', label='var1') 
and plotting each bar like this

但是想要以更优化的方式或动态的方式进行操作

1 个答案:

答案 0 :(得分:1)

您可以重塑数据框并使用熊猫图:

df_out = df.reset_index(level=1, drop=True)\
           .set_index(['continent'], append=True)['avg_count_country']\
           .unstack()

df_out.plot.bar()

输出:

enter image description here