matplotlib 占总数百分比的条形图

ffdz8vbo  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(132)

我尝试以透视表的方式分组图表。我想用pandas/matplotlib以百分比的方式堆叠['post_datetime','claimed']来绘制我的数据,其中图表条将导致100%划分为True/False 'claimed'数据。
这是从我的数据库中摘录的:

post_datetime,claimed,percent,claimed_pct,unclaimed_pct
2016,True,1.0,1.0,
2017,True,1.0,1.0,
2018,False,0.25342,,0.25342
2018,True,0.74658,0.74658,
2019,False,0.3971,,0.3971
2019,True,0.6029,0.6029,
2020,False,0.44128,,0.44128
2020,True,0.55872,0.55872,
2021,False,0.5594,,0.5594
2021,True,0.4406,0.4406,
2022,False,0.5316,,0.5316
2022,True,0.4684,0.4684,

到目前为止,我使用下面的代码得到的最好的结果是一个下一个条形图(我想要它100%,分为比例或真和假'claiem',这是由'百分比'在我的数据库中定义的。

ax = year_claim_df.plot(x='post_datetime',
                       y='claimed_pct',
                       kind='bar',
                       color='red'

                       )
    year_claim_df.plot(x='post_datetime',
                       y='unclaimed_pct',
                       kind='bar',
                       color='blue',
                       ax=ax

                       )
    plt.show()

这是我得到的图表:
x1c 0d1x但是我会将所有的条形图都设置为1或100%,使用真/假“声明”列和“百分比”列的比例进行分割着色
我希望图表是这样的(不是我的数据):

Tx for the help.最好的

xpcnnkqh

xpcnnkqh1#

使用pivotrename,然后使用DataFrame.plot.bar

(df.pivot('post_datetime','claimed','percent')
   .rename(columns={True:'claimed_pct',False:'unclaimed_pct'})
   .plot.bar(stacked=True, color=['red','blue']))

相关问题