Ich möchte Etiketten für meine Zeichnungen mit der modernen Schriftart für Latex-Computer erstellen. Die einzige Möglichkeit, Matplotlib von der Verwendung der Latex-Schriftart zu überzeugen, ist das Einfügen von Folgendem:
title(r"$mathrm{test}$")
Das ist natürlich lächerlich, ich sage Latex dazuStarten Sie den Mathemodus und beenden Sie den Mathemodus vorübergehend, um die tatsächliche Zeichenfolge zu schreiben. Wie stelle ich sicher, dass alle Beschriftungen in Latex und nicht nur in Formeln angezeigt werden? Und wie kann ich sicherstellen, dass dies das Standardverhalten ist?
Ein minimales Arbeitsbeispiel ist wie folgt:
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
# use latex for font rendering
mpl.rcParams["text.usetex"] = True
x = np.linspace(-50,50,100)
y = np.sin(x)**2/x
plt.plot(x,y)
plt.xlabel(r"$mathrm{xlabel;with;LaTeX;font}$")
plt.ylabel(r"Not a latex font")
plt.show()
Daraus ergibt sich folgendes Ergebnis:
Hier ist die x-Achse, wie die Etiketten angezeigt werden sollen. Wie stelle ich sicher, dass alle Beschriftungen so aussehen, ohne in den Mathematikmodus und wieder zurück gehen zu müssen?
Antworten:
32 für die Antwort № 1Die Standardschriftart für Latex ist bekannt als Computer Modern
:
from matplotlib import rc
import matplotlib.pylab as plt
rc("font", **{"family": "serif", "serif": ["Computer Modern"]})
rc("text", usetex=True)
x = plt.linspace(0,5)
plt.plot(x,plt.sin(x))
plt.ylabel(r"This is $sin(x)$", size=20)
plt.show()
9 für die Antwort № 2
Die markierte Antwort kann standardmäßig aktiviert werden, indem Sie einige Zeilen im Feld ändern matplotlibrc
Datei:
text.usetex = True
font.family = serif
font.serif = cm
9 für die Antwort № 3
Ich verwende matplotlib 1.3.1 unter Mac OSX. Fügen Sie die folgenden Zeilen hinzu matplotlibrc
funktioniert bei mir
text.usetex : True
font.family : serif
font.serif : cm
Verwenden =
führt zu a UserWarning: Illegal line