排列堆积条形图p

2024-06-08 14:01:44 发布

您现在位置:Python中文网/ 问答频道 /正文

所有人

我有一个数据帧,我已经分组和排序,看起来像这样

 brkrcy=data[data['upload_date']==Date].groupby(['CPTY','currency'], as_index=False).agg({"Gross Loan Amount": "sum"})
    brkrcy=brkrcy.sort_values(by=['CPTY', 'Gross Loan Amount'], ascending=[True, False])
    brkrcy = brkrcy.set_index('CPTY')

双重排名

^{pr2}$

enter image description here 正如您可以看到的,虽然它是双排的,但堆积条形图并不是按降序排列的。请问我要怎么改?在


Tags: 数据falsedatadateindex排序amountupload
1条回答
网友
1楼 · 发布于 2024-06-08 14:01:44

假设您的意思是堆积图上的降序条,请考虑添加一个helperTotal列,该列按每个CPTY对plot dataframe的所有货币字段求和。使用此新列按降序对数据排序,然后在打印之前删除辅助对象列:

plot_df = brkrcy.set_index('currency',append=True)['Gross Loan Amount'].unstack()
plot_df['Total'] = plot_df.apply('sum', axis=1)          # HELPER COLUMN

plot_df.sort_values('Total', ascending=False)\
       .drop(columns=['Total'])\
       .plot(kind="bar", stacked=True, figsize=(10,8))

plt.ylabel('Gross Loan Amount in Billions')
plt.show()

用随机数据演示,希望能复制您的实际数据(种子可重复性):

数据

^{pr2}$

绘图

import matplotlib.pyplot as plt

plot_df = brkrcy.set_index('currency',append=True)['Gross Loan Amount'].unstack()
plot_df['Total'] = plot_df.apply('sum', axis=1)

plot_df.sort_values('Total', ascending=False)\
       .drop(columns=['Total'])\
       .plot(kind="bar", stacked=True, figsize=(10,8))

plt.ylabel('Gross Loan Amount in Billions')
plt.show()

Plot Output

相关问题 更多 >