webentwicklung-frage-antwort-db.com.de

Wie drucke ich ein Y-Achsen-Etikett horizontal in einem Matplotlib / Pylab-Diagramm?

Ich erstelle sehr einfache Diagramme mit matplotlib/pylab Python Modul. Der Buchstabe "y", der die Y-Achse beschriftet, befindet sich auf der Seite. Sie würden dies erwarten, wenn die Beschriftung länger wäre, wie z ein Wort, um das Äußere des Diagramms nicht zu sehr nach links zu verlängern. Bei einem Ein-Buchstaben-Etikett ist dies jedoch nicht sinnvoll. Das Etikett sollte aufrecht stehen. Meine Suchanfragen sind leer. Wie kann ich drucken? das "y" horizontal?

46
Karl D

Es ist sehr einfach. Nach dem Plotten des Etiketts können Sie einfach die Drehung ändern:

from matplotlib import pyplot as plt
plt.ion()
plt.plot([1,2,3])
h = plt.ylabel('y')
h.set_rotation(0)
plt.draw()

Alternativ können Sie die Drehung als Argument übergeben, d. H

plt.ylabel('y',rotation=0)
84
Jens Munk

Erweitern Sie die akzeptierte Antwort, wenn wir mit einem bestimmten Achsenobjekt ax arbeiten:

ax.set_ylabel('abc', rotation=0, fontsize=20, labelpad=20)

Beachten Sie, dass das labelpad häufig auch manuell angepasst werden muss - andernfalls greift das "abc" in den Plot ein.

Aus kurzen Experimenten schätze ich, dass labelpad der Versatz zwischen dem Begrenzungsrahmen der Teilstrichbeschriftungen und der Mitte der y-Beschriftung ist. (Also nicht ganz die Polsterung, die der Name impliziert - es wäre intuitiver gewesen, wenn dies stattdessen die Lücke zum Begrenzungsrahmen des Etiketts wäre.)

41
Evgeni Sergeev