theta pyplot mathematical python matplotlib latex

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