web-dev-qa-db-fra.com

Diagramme à barres Pandas DataFrame avec des valeurs de tri par autre colonne

J'ai un DataFrame Pandas. Je veux tracer les valeurs de deux colonnes avec le graphique à barres, et le graphique à barres trie les valeurs en fonction de l'autre colonne.

Par exemple, je veux trier les valeurs dans l'ordre décroissant par la colonne a_b (somme de la colonne a et b). De plus, le xlabel est pivoté, je veux le corriger.

Votre aide serait appréciée.

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)

 enter image description here

6
running man

Triez d'abord la structure de données par c, puis tracez avec.

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

 enter image description here

7
piRSquared

Corrigez le problème de rotation en utilisant rot=0 dans la réponse @piRSquared.

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

 enter image description here

2
qmaruf