python - pyplot - Matplotlib no usa la fuente de látex mientras que text.usetex== True
symbols in matplotlib (3)
Quiero crear etiquetas para mis gráficos con la fuente moderna de computadora de látex. Sin embargo, la única forma de persuadir a matplotlib para que use la fuente de látex es insertando algo como:
title(r''$/mathrm{test}$'')
Esto es ridículo, le digo a latex que comience el modo matemático, y luego salgo del modo matemático temporal para escribir la cadena actual. ¿Cómo me aseguro de que todas las etiquetas se procesen en látex, en lugar de solo las fórmulas? ¿Y cómo me aseguro de que este sea el comportamiento predeterminado?
Un ejemplo de trabajo mínimo es el siguiente:
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
# use latex for font rendering
mpl.rcParams[''text.usetex''] = True
x = np.linspace(-50,50,100)
y = np.sin(x)**2/x
plt.plot(x,y)
plt.xlabel(r''$/mathrm{xlabel/;with/;/LaTeX/;font}$'')
plt.ylabel(r''Not a latex font'')
plt.show()
Esto da el siguiente resultado:
Aquí el eje x es cómo quiero que aparezcan las etiquetas. ¿Cómo me aseguro de que todas las etiquetas aparezcan así sin tener que ir al modo matemático y viceversa?
Estoy usando matplotlib 1.3.1 en Mac OSX, agregue las siguientes líneas en matplotlibrc
funciona para mí
text.usetex : True
font.family : serif
font.serif : cm
Usar =
conduce a una UserWarning: Illegal line
La fuente predeterminada de Latex se conoce como Computer Modern
:
from matplotlib import rc
import matplotlib.pylab as plt
rc(''font'', **{''family'': ''serif'', ''serif'': [''Computer Modern'']})
rc(''text'', usetex=True)
x = plt.linspace(0,5)
plt.plot(x,plt.sin(x))
plt.ylabel(r"This is $/sin(x)$", size=20)
plt.show()
La respuesta marcada se puede habilitar por defecto cambiando algunas líneas en el archivo matplotlibrc
:
text.usetex = True
font.family = serif
font.serif = cm