在大熊猫中整理我的水平条形图

发布于 2025-01-19 11:40:27 字数 634 浏览 0 评论 0原文

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

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

我已经尝试在可视化日期之前对日期进行整理,但这无济于事。

有人可以帮我对他们排序。 谢谢

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.sstatic.net/WkvY9.jpg

I have been trying to visualize some data and put them on horizontal bar charts stacked over each other.

when doing so, I find it hard to sort them based on their sizes, which I wanted.

I have tried sorting the date before visualizing it but that didn't help.

could someone please help me sort them des.
thanks

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.sstatic.net/WkvY9.jpg

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

执笔绘流年 2025-01-26 11:40:27

您可以按 DataFrame 对汇总行进行排序.sort_index 带有 key 参数和 scending=False

(plot3.sort_index(key=plot3.sum(axis=1).get, ascending=False)
      .plot(kind = 'barh',color = ['r', 'g'],figsize = [15, 10], stacked = True))

或者使用 DataFrame.ilocSeries.argsort, - 对于负值是降序排列:

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

You can sorting summed rows by DataFrame.sort_index with key parameter and scending=False:

(plot3.sort_index(key=plot3.sum(axis=1).get, ascending=False)
      .plot(kind = 'barh',color = ['r', 'g'],figsize = [15, 10], stacked = True))

Or use DataFrame.iloc with Series.argsort, - for negative values is for descending order:

(plot3.iloc[-plot3.sum(axis=1).argsort()]
      .plot(kind = 'barh',color = ['r', 'g'],figsize = [15, 10], stacked = True))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文