matplotlib
Integrazione con TeX / LaTeX
Ricerca…
Osservazioni
- Il supporto LaTeX di Matplotlib richiede un'installazione LaTeX funzionante, dvipng (che può essere incluso nell'installazione di LaTeX) e Ghostscript (si consiglia GPL Ghostscript 8.60 o successivo).
- Il supporto pgf di Matplotlib richiede una recente installazione di LaTeX che include i pacchetti TikZ / PGF (come TeXLive), preferibilmente con XeLaTeX o LuaLaTeX installati.
Inserimento di formule TeX nei grafici
Le formule TeX possono essere inserite nel grafico usando la funzione rc
import matplotlib.pyplot as plt
plt.rc(usetex = True)
o accedendo a rcParams
:
import matplotlib.pyplot as plt
params = {'tex.usetex': True}
plt.rcParams.update(params)
TeX usa il backslash \
per comandi e simboli, che possono entrare in conflitto con caratteri speciali nelle stringhe Python. Per utilizzare backslash letterali in una stringa Python, devono essere sottoposti a escape o incorporati in una stringa non elaborata:
plt.xlabel('\\alpha')
plt.xlabel(r'\alpha')
La seguente trama può essere prodotto dal codice
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()
Le equazioni visualizzate (come $$...$$
o \begin{equation}...\end{equation}
) non sono supportate. Tuttavia, lo stile matematico visualizzato è possibile con \displaystyle
.
Per caricare i pacchetti in lattice, utilizzare l'argomento tex.latex.preamble
:
params = {'text.latex.preamble' : [r'\usepackage{siunitx}', r'\usepackage{amsmath}']}
plt.rcParams.update(params)
Notare, tuttavia, l'avvertenza nel file matplotlibrc di esempio :
#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
Salvataggio ed esportazione di grafici che utilizzano TeX
Per includere i grafici creati con matplotlib nei documenti TeX, dovrebbero essere salvati come file pdf
o eps
. In questo modo, qualsiasi testo nel grafico (incluse le formule TeX) viene visualizzato come testo nel documento finale.
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
I grafici in matplotlib possono essere esportati in codice TeX usando il pacchetto macro pgf
per visualizzare la grafica.
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')
Utilizzare il comando rc
per modificare il motore TeX utilizzato
plt.rc('pgf', texsystem='pdflatex') # or luatex, xelatex...
Per includere la figura .pgf
, scrivi nel documento LaTeX
\usepackage{pgf}
\input{my_pgf_plot.pgf}