Sök…


Anmärkningar

  • Matplotlibs LaTeX-stöd kräver en fungerande LaTeX-installation, dvipng (som kan inkluderas i din LaTeX-installation) och Ghostscript (GPL Ghostscript 8.60 eller senare rekommenderas).
  • Matplotlibs pgf-stöd kräver en ny LaTeX-installation som inkluderar TikZ / PGF-paketen (som TeXLive), helst med XeLaTeX eller LuaLaTeX installerat.

Infoga TeX-formler i tomter

TeX-formler kan infogas i plotten med rc funktionen

import matplotlib.pyplot as plt
plt.rc(usetex = True)

eller åtkomst till rcParams :

import matplotlib.pyplot as plt
params = {'tex.usetex': True}
plt.rcParams.update(params)

TeX använder backslash \ för kommandon och symboler, som kan komma i konflikt med specialtecken i Python-strängar. För att kunna använda bokstavliga backstänk i en Python-sträng måste de antingen flydas eller införlivas i en rå sträng:

plt.xlabel('\\alpha')
plt.xlabel(r'\alpha')

Följande tomt Plott som visar TeX i etiketter och legend kan produceras med koden

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()

Visade ekvationer (t.ex. $$...$$ eller \begin{equation}...\end{equation} ) stöds inte. Ändå visas visad matematisk stil med \displaystyle .

För att ladda latexpaket använder du tex.latex.preamble argumentet:

params = {'text.latex.preamble' : [r'\usepackage{siunitx}', r'\usepackage{amsmath}']}
plt.rcParams.update(params)

Observera dock varningen i exemplet matplotlibrc-fil :

#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

Spara och exportera tomter som använder TeX

För att inkludera tomter som skapats med matplotlib i TeX-dokument, bör de sparas som pdf eller eps filer. På detta sätt återges all text i handlingen (inklusive TeX-formler) som text i det slutliga dokumentet.

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

Tomter i matplotlib kan exporteras till TeX-kod med pgf för att visa grafik.

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')

Använd kommandot rc att ändra den använda TeX-motorn

plt.rc('pgf', texsystem='pdflatex')  # or luatex, xelatex...

Om du .pgf inkludera .pgf figuren skriver du i ditt LaTeX-dokument

\usepackage{pgf}
\input{my_pgf_plot.pgf}


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow