在 pandas 中整理我的水平条形图

sorting out my horizontal bar chart in pandas

我一直在尝试可视化一些数据并将它们放在相互堆叠的水平条形图上。

这样做时,我发现很难根据我想要的大小对它们进行排序。

我曾尝试在可视化之前对日期进行排序,但这没有帮助。

有人可以帮我把它们分类吗? 谢谢

import pandas as pd 

import matplotlib.pyplot as plt

df = pd.read_csv("data.csv")

plot3 = df.groupby(['Company', 'Outcome']).size()
plot3 = plot3.unstack()
plot3[:].sort_values(('Company'), axis = 0, ascending = True).plot(kind = 'barh',color = ['r', 'g'],figsize = [15, 10], stacked = True)
#df= df.sort_values('Company', axis = 0, ascending = True,inplace = True)
    
plt.savefig('plot3.png')'''



[![here is what i get][1]][1]



  [1]: https://i.stack.imgur.com/WkvY9.jpg

您可以使用 key 参数和 scending=False:

DataFrame.sort_index 对汇总行进行排序
(plot3.sort_index(key=plot3.sum(axis=1).get, ascending=False)
      .plot(kind = 'barh',color = ['r', 'g'],figsize = [15, 10], stacked = True))

或使用DataFrame.iloc with Series.argsort-为负值表示降序:

(plot3.iloc[-plot3.sum(axis=1).argsort()]
      .plot(kind = 'barh',color = ['r', 'g'],figsize = [15, 10], stacked = True))