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 Plot zeigt TeX in Beschriftungen und Legende 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}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow