使用 Pandas DataFrame 制作条形图,根据其他列排序(sort_values)。

18

我有一个Pandas DataFrame。 我想使用条形图绘制两列的值,并且该条形图按另一列排序值。

例如,我希望按列a_b(列ab的总和)降序排序值。 此外,xlabel被旋转,我想要修复它。

感谢您的帮助。

import pandas as pd
%matplotlib inline
a = pd.Series([4,8,6,7,8,3,9,7])
b = pd.Series([3,6,8,3,4,6,10,4])
a_b = a+b
df = pd.concat([a,b,a_b],axis=1,join='inner')
df.columns = ['a','b','c']

df[['a','b']].sort_values(by='a',ascending=False).plot(kind='bar',stacked=True)

输入图像描述

2个回答

20

按照c先对数据框进行排序,然后绘制图形。

df.sort_values('c', ascending=False)[['a','b']].plot.bar(stacked=True)

输入图像描述


5
使用@piRSquared的答案中的rot=0来解决旋转问题。
df.sort_values('c', ascending=False)[['a','b']].plot.bar(stacked=True, rot=0)

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接