Comment faire pour déterminer l'ordre de barres dans une matplotlib graphique à barres
Supposons que nous lire des données dans une pandas trame de données:
data1 = pd.read_csv("data.csv", "\t")
Le contenu ressemble à ceci:
Et ensuite de définir une fonction qui devrait nous donner un diagramme à barres horizontales, où la longueur des barres représentent les valeurs et les bars sont étiquetés avec les touches.
def barchart(data, labels):
pos = arange(len(data))+.5 # the bar centers on the y axis
barh(pos, data, align='center', height=0.25)
yticks(pos, labels)
Ensuite, nous appelons la fonction plot comme ceci:
barchart(data1["val"], data1["key"])
qui nous donne la suite de l'intrigue:
Maintenant, qu'est ce qui détermine l'ordre des barreaux?
Supposons que nous voulons les barres dans un ordre particulier, dire [C, A, D, F, E, B]
, comment pouvons-nous appliquer cette?
- viens de re-commander votre entrée.
- Comment réorganiser l'entrée de la liste
[C, A, D, F, E, B]
? barchart(data[['C', 'A', 'D', 'F', 'E', 'B']], labels)
- data[['C', 'A', 'D', 'F', 'E', 'B']] -- il n'est pas d'aller travailler, de cette façon, vous pouvez sélectionner des colonnes
Vous devez vous connecter pour publier un commentaire.
J'ai modifié la version originale de barchart. Pour spécifier l'ordre de barres, je suis à l'aide de l'indice de régler via ii colonne:
data['ii‘]
colonne à partir de la liste ordonnée des touches?Si vous de lire directement la clé de l'index avec
vous pouvez utiliser
ix
pour obtenir l'index dans un ordre différent et de la parcelle à l'aide dedf.plot
:(Noter que F n'est pas donné dans les données, mais que vous avez donné à titre d'exemple)