matplotlib
Integration mit TeX / LaTeX
Suche…
Bemerkungen
- Die LaTeX-Unterstützung von Matplotlib erfordert eine funktionierende LaTeX-Installation, dvipng (möglicherweise in Ihrer LaTeX-Installation enthalten) und Ghostscript (GPL Ghostscript 8.60 oder höher wird empfohlen).
- Die pgf-Unterstützung von Matplotlib erfordert eine aktuelle LaTeX-Installation, die die TikZ / PGF-Pakete (wie TeXLive) enthält, vorzugsweise mit installiertem XeLaTeX oder LuaLaTeX.
Einfügen von TeX-Formeln in Diagramme
TeX-Formeln können mit der Funktion rc
die rc
eingefügt werden
import matplotlib.pyplot as plt
plt.rc(usetex = True)
oder auf die rcParams
zugreifen:
import matplotlib.pyplot as plt
params = {'tex.usetex': True}
plt.rcParams.update(params)
TeX verwendet den Backslash \
für Befehle und Symbole, die mit Sonderzeichen in Python-Zeichenfolgen in Konflikt stehen können. Um literale Backslashes in einer Python-Zeichenfolge verwenden zu können, müssen sie entweder mit Escapezeichen versehen oder in eine unformatierte Zeichenfolge eingefügt werden:
plt.xlabel('\\alpha')
plt.xlabel(r'\alpha')
Die folgende Handlung kann durch den Code erzeugt werden
import matplotlib.pyplot as plt
plt.rc(usetex = True)
x = range(0,10)
y = [t**2 for t in x]
z = [t**2+1 for t in x]
plt.plot(x, y, label = r'$\beta=\alpha^2$')
plt.plot(x, z, label = r'$\beta=\alpha^2+1$')
plt.xlabel(r'$\alpha$')
plt.ylabel(r'$\beta$')
plt.legend(loc=0)
plt.show()
Angezeigte Gleichungen (z. B. $$...$$
oder \begin{equation}...\end{equation}
) werden nicht unterstützt. Trotzdem ist der angezeigte mathematische Stil mit \displaystyle
.
Um Latex-Pakete zu laden, verwenden Sie das Argument tex.latex.preamble
:
params = {'text.latex.preamble' : [r'\usepackage{siunitx}', r'\usepackage{amsmath}']}
plt.rcParams.update(params)
Beachten Sie jedoch die Warnung in der Beispieldatei matplotlibrc :
#text.latex.preamble : # IMPROPER USE OF THIS FEATURE WILL LEAD TO LATEX FAILURES
# AND IS THEREFORE UNSUPPORTED. PLEASE DO NOT ASK FOR HELP
# IF THIS FEATURE DOES NOT DO WHAT YOU EXPECT IT TO.
# preamble is a comma separated list of LaTeX statements
# that are included in the LaTeX document preamble.
# An example:
# text.latex.preamble : \usepackage{bm},\usepackage{euler}
# The following packages are always loaded with usetex, so
# beware of package collisions: color, geometry, graphicx,
# type1cm, textcomp. Adobe Postscript (PSSNFS) font packages
# may also be loaded, depending on your font settings
Speichern und Exportieren von Plots, die TeX verwenden
Um Plots mit matplotlib in TeX - Dokumente erstellt sind, sollten sie gespeichert als sein pdf
oder eps
- Dateien. Auf diese Weise wird jeglicher Text in der Zeichnung (einschließlich TeX-Formeln) als Text im endgültigen Dokument dargestellt.
import matplotlib.pyplot as plt
plt.rc(usetex=True)
x = range(0, 10)
y = [t**2 for t in x]
z = [t**2+1 for t in x]
plt.plot(x, y, label=r'$\beta=\alpha^2$')
plt.plot(x, z, label=r'$\beta=\alpha^2+1$')
plt.xlabel(r'$\alpha$')
plt.ylabel(r'$\beta$')
plt.legend(loc=0)
plt.savefig('my_pdf_plot.pdf') # Saving plot to pdf file
plt.savefig('my_eps_plot.eps') # Saving plot to eps file
Diagramme in matplotlib können mit dem Makro pgf
Makro in TeX-Code exportiert werden, um Grafiken anzuzeigen.
import matplotlib.pyplot as plt
plt.rc(usetex=True)
x = range(0, 10)
y = [t**2 for t in x]
z = [t**2+1 for t in x]
plt.plot(x, y, label=r'$\beta=\alpha^2$')
plt.plot(x, z, label=r'$\beta=\alpha^2+1$')
plt.xlabel(r'$\alpha$')
plt.ylabel(r'$\beta$')
plt.legend(loc=0)
plt.savefig('my_pgf_plot.pgf')
Verwenden Sie den Befehl rc
, um die verwendete TeX-Engine zu ändern
plt.rc('pgf', texsystem='pdflatex') # or luatex, xelatex...
Um die .pgf
Figur aufzunehmen, schreiben Sie in Ihr LaTeX-Dokument
\usepackage{pgf}
\input{my_pgf_plot.pgf}