Frage

Wie kann ich eine neue Zeile auf einem Grundstück des Labels (z xlabel oder ylabel) in matplotlib hinzufügen? Zum Beispiel:

plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math \n continues here") 

würde Idealer ich wie die y-kennzeichnungs auch zentriert zu werden. Gibt es eine Möglichkeit, dies zu tun? Es ist wichtig, dass das Etikett sowohl TeX hat (eingeschlossen in ‚$‘) und die Neuen-Zeile.

War es hilfreich?

Lösung

Ihr Beispiel ist genau das, wie es gemacht wird, verwenden Sie \n. Sie müssen den r Präfix auszuziehen, obwohl so Python sie als Ausgang String nicht behandeln ist

Andere Tipps

können Sie haben das Beste aus beiden Welten: automatisch "Flucht" von LaTeX-Befehlen und Zeilenumbrüche:

plt.ylabel(r"My long label with unescaped {\LaTeX} $\Sigma_{C}$ math"
           "\n"  # Newline: the backslash is interpreted as usual
           r"continues here with $\pi$")

(statt drei Zeilen verwenden, die Trennung der Strings durch einzelne Leerzeichen ist eine weitere Option).

In der Tat, Python automatisch verkettet Stringliterale, die einander folgen, und Sie können rohe Strings (r"…") und Strings mit Zeichen Interpolation ("\n") mischen.

plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math" + "\n" + "continues here")

verketten Nur die Saiten mit einem Newline, die nicht in roher String-Form ist.

Die folgende matplotlib Python-Skript erzeugt Text mit neuer Zeile

ax.text(10, 70, 'shock size \n $n-n_{fd}$')

Im Folgenden hat keine neue Zeile. Beachten Sie die r vor dem Text

ax.text(10, 70, r'shock size \n $n-n_{fd}$')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top