web-dev-qa-db-fra.com

Faire pivoter les étiquettes des tiques pour le barplot Seaborn

J'essaie d'afficher un graphique avec des étiquettes d'axe des X pivotées, mais le graphique ne s'affiche pas.

import seaborn as sns
%matplotlib inline

yellow='#FFB11E'
by_school=sns.barplot(x ='Organization Name',y ='Score',data = combined.sort('Organization Name'),color=yellow,ci=None)

À ce stade, je peux voir l'image, mais après avoir défini le xticklabel, je ne vois plus l'image uniquement une référence d'objet. (Je posterais l'image, mais je n'ai pas assez de réputation :()

by_school.set_xticklabels('Organization Name',rotation=45)

<matplotlib.axes._subplots.AxesSubplot at 0x3971a6a0>

Une question similaire est publiée ici: Faire pivoter le texte de l'étiquette dans seaplot factorplot mais la solution ne fonctionne pas.

29
Laurennmc

Vous avez besoin d'un appel de méthode différent, à savoir .set_rotation pour chaque ticklables. Puisque vous avez déjà les ticklabels, changez simplement leurs rotations:

for item in by_school.get_xticklabels():
    item.set_rotation(45)

barplot renvoie un matplotlib.axes objet (à partir de seaborn 0.6.0), vous devez donc faire pivoter les étiquettes de cette façon. Dans d'autres cas, lorsque la méthode renvoie un objet FacetGrid, reportez-vous à Faire pivoter le texte de l'étiquette dans seaplot factorplot

38
CT Zhu

Utilisez l'instruction de code suivante:

by_school.set_xticklabels(by_school.get_xticklabels(), rotation=90)
21
Amit Vikram Singh

Si vous venez ici pour faire pivoter les étiquettes pour un seaborn.heatmap , ce qui suit devrait fonctionner (basé sur @ la réponse d'Aman à Faire pivoter le texte de l'étiquette dans le diagramme de facteur marin )

pandas_frame = pd.DataFrame(data, index=names, columns=names)
heatmap = seaborn.heatmap(pandas_frame)
loc, labels = plt.xticks()
heatmap.set_xticklabels(labels, rotation=45)
heatmap.set_yticklabels(labels[::-1], rotation=45) # reversed order for y
1
serv-inc