Ich versuche, ein Diagramm mit gedrehten Beschriftungen der x-Achse anzuzeigen, aber das Diagramm wird nicht angezeigt.

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)

Zu diesem Zeitpunkt kann ich das Bild sehen, aber nachdem ich das xticklabel festgelegt habe, sehe ich das Bild nicht mehr nur noch als Objektreferenz. (Ich würde das Bild posten, aber ich habe nicht genug Ruf :()

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

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

Eine ähnliche Frage wird hier gestellt: Etikettentext im Seegeborenen-Faktorplot drehen, aber die Lösung funktioniert nicht.

56
Laurennmc 6 Aug. 2015 im 18:04

4 Antworten

Beste Antwort

Sie benötigen einen anderen Methodenaufruf, nämlich .set_rotation für jede ticklable. Da Sie die Ticklabels bereits haben, ändern Sie einfach ihre Rotationen:

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

barplot gibt ein matplotlib.axes Objekt zurück (ab seaborn 0.6.0), daher müssen Sie die Beschriftungen auf diese Weise drehen. In anderen Fällen, wenn die Methode ein FacetGrid -Objekt zurückgibt, verweisen Sie auf Etikettentext im Seegeborenen-Faktorplot drehen

39
Community 23 Mai 2017 im 12:26

Wenn Sie hierher kommen, um die Beschriftungen für eine seaborn.heatmap zu drehen, Folgendes sollte funktionieren (basierend auf @ Amans Antwort unter Etikettentext im Seegeborenen-Faktorplot drehen)

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 31 Okt. 2017 im 16:57

Das hat bei mir funktioniert:

g.fig.autofmt_xdate()
-2
HMD 25 Dez. 2018 im 11:05

Verwenden Sie die folgende Code-Anweisung:

by_school.set_xticklabels(by_school.get_xticklabels(), rotation=90)
24
Tim Visée 17 Jän. 2018 im 10:15