Wie kann ich der Beschriftung eines Plots (z. B. xlabel oder ylabel) in matplotlib eine neue Zeile 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")
Idealerweise möchte ich, dass das y-Label auch zentriert ist. Gibt es eine Möglichkeit, dies zu tun? Es ist wichtig, dass das Label sowohl TeX (in '$' eingeschlossen) als auch die Newline enthält.
python
plot
graphing
matplotlib
BrechtDeMan
quelle
quelle
xlabel('$\\Sigma$')
ylabel('this is vertical\ntest', multialignment='center')
von matplotlib.org/examples/pylab_examples/multiline.htmlrcParams["text.usetex"] = True
Sie können das Beste aus beiden Welten genießen: automatisches " Escape " von LaTeX-Befehlen und Zeilenumbrüchen:
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$")
(Anstatt drei Zeilen zu verwenden, können Sie die Zeichenfolgen auch durch einzelne Leerzeichen trennen.)
Tatsächlich verkettet Python automatisch aufeinanderfolgende Zeichenfolgenliterale, und Sie können rohe Zeichenfolgen (
r"…"
) und Zeichenfolgen mit Zeicheninterpolation ("\n"
) mischen .quelle
r"$\alpha$ : {0} " "\n" r"$\beta$ : {1}".format(a, b)
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 Sie einfach die Zeichenfolgen mit einer neuen Zeile, die nicht in roher Zeichenfolgenform vorliegt.
quelle
Das folgende Python-Skript von matplotlib erstellt Text mit einer neuen Zeile
ax.text(10, 70, 'shock size \n $n-n_{fd}$')
Das Folgende hat keine neue Zeile. Beachten Sie das r vor dem Text
ax.text(10, 70, r'shock size \n $n-n_{fd}$')
quelle