Zoeken…


Opmerkingen

  • De LaTeX-ondersteuning van Matplotlib vereist een werkende LaTeX-installatie, dvipng (mogelijk meegeleverd met uw LaTeX-installatie) en Ghostscript (GPL Ghostscript 8.60 of hoger wordt aanbevolen).
  • De pgf-ondersteuning van Matplotlib vereist een recente LaTeX-installatie met de TikZ / PGF-pakketten (zoals TeXLive), bij voorkeur met XeLaTeX of LuaLaTeX geïnstalleerd.

TeX-formules invoegen in plots

TeX-formules kunnen in de plot worden ingevoegd met behulp van de rc functie

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

of toegang tot de rcParams :

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

TeX gebruikt de backslash \ voor opdrachten en symbolen, die kunnen conflicteren met speciale tekens in Python-strings. Om letterlijke backslashes in een Python-string te gebruiken, moeten ze worden ontsnapt of in een onbewerkte string worden opgenomen:

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

Het volgende plot Plot met TeX in labels en legenda kan door de code worden geproduceerd

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

Weergegeven vergelijkingen (zoals $$...$$ of \begin{equation}...\end{equation} ) worden niet ondersteund. Niettemin is weergegeven wiskundige stijl mogelijk met \displaystyle .

Gebruik het argument tex.latex.preamble om tex.latex.preamble te laden:

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

Let echter op de waarschuwing in het voorbeeldbestand 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

Plots opslaan en exporteren die TeX gebruiken

Om plots gemaakt met matplotlib in TeX-documenten op te nemen, moeten ze worden opgeslagen als pdf of eps bestanden. Op deze manier wordt alle tekst in de plot (inclusief TeX-formules) weergegeven als tekst in het uiteindelijke document.

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

Plots in matplotlib kunnen naar TeX-code worden geëxporteerd met behulp van het pgf om grafische afbeeldingen weer te geven.

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

Gebruik de opdracht rc om de gebruikte TeX-engine te wijzigen

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

Om het .pgf figuur op te nemen, schrijft u in uw LaTeX-document

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow