matplotlib
Integración con TeX / LaTeX
Buscar..
Observaciones
- El soporte de LaTeX de Matplotlib requiere una instalación de LaTeX que funcione, dvipng (que puede incluirse con su instalación de LaTeX) y Ghostscript (se recomienda GPL Ghostscript 8.60 o posterior).
- El soporte pgf de Matplotlib requiere una instalación reciente de LaTeX que incluya los paquetes TikZ / PGF (como TeXLive), preferiblemente con XeLaTeX o LuaLaTeX instalado.
Insertando fórmulas TeX en parcelas
Las fórmulas TeX se pueden insertar en la gráfica usando la función rc
import matplotlib.pyplot as plt
plt.rc(usetex = True)
o accediendo a los rcParams
:
import matplotlib.pyplot as plt
params = {'tex.usetex': True}
plt.rcParams.update(params)
TeX utiliza la barra invertida \
para comandos y símbolos, que puede entrar en conflicto con caracteres especiales en las cadenas de Python. Para utilizar barras diagonales literales en una cadena de Python, deben ser evadidas o incorporadas en una cadena en bruto:
plt.xlabel('\\alpha')
plt.xlabel(r'\alpha')
La siguiente parcela puede ser producido por el codigo
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()
Las ecuaciones mostradas (como $$...$$
o \begin{equation}...\end{equation}
) no son compatibles. Sin embargo, el estilo matemático mostrado es posible con \displaystyle
.
Para cargar paquetes de látex use el argumento tex.latex.preamble
:
params = {'text.latex.preamble' : [r'\usepackage{siunitx}', r'\usepackage{amsmath}']}
plt.rcParams.update(params)
Tenga en cuenta, sin embargo, la advertencia en el archivo matplotlibrc de ejemplo :
#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
Guardando y exportando parcelas que utilizan TeX.
Para incluir las parcelas creadas con matplotlib en documentos TeX, deben guardarse como archivos pdf
o eps
. De esta manera, cualquier texto en la trama (incluidas las fórmulas TeX) se representa como texto en el documento final.
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
Los diagramas en matplotlib se pueden exportar a código TeX utilizando el paquete de macros pgf
para mostrar gráficos.
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')
Utilice el comando rc
para cambiar el motor TeX utilizado
plt.rc('pgf', texsystem='pdflatex') # or luatex, xelatex...
Para incluir la figura .pgf
, escriba en su documento LaTeX
\usepackage{pgf}
\input{my_pgf_plot.pgf}