unknown pdf_tex extension matplotlib latex vector-graphics inkscape

matplotlib - extension - pdf_tex



matplotlib-traza el texto de salida como rutas y no puede convertirse a LaTeX por Inkscape (2)

Me encontré con el mismo problema y lo arreglé.

La documentación de matplotlib en http://matplotlib.org/users/customizing.html indica que el valor predeterminado para el parámetro svg.fonttype es ''path'' , lo que significa que los caracteres se convertirán en rutas cuando se exporten al formato svg.

Todo lo que tenía que hacer era agregar la siguiente línea en mi script:

matplotlib.rcParams[''svg.fonttype''] = ''none''

De esta manera, todos los caracteres están incrustados correctamente, ahora puedo editar el texto en Inkscape y exportar mi figura a pdf + Latex, es decir, un archivo pdf y un archivo pdf_tex que incluyo en mi archivo tex .

Tengo un gráfico de matplotlib que me gustaría guardar en un formato de gráficos vectoriales para luego utilizarlo en un documento LaTeX.

Normalmente lo matplotlib desde matplotlib , lo abro con Inkscape y lo matplotlib como PDF + LaTeX (omita el texto en PDF y cree el archivo LaTeX). Esto también se puede lograr con:

inkscape -D -z --file=in.pdf --export-pdf=out.pdf --export-latex

Sin embargo, para la siguiente gráfica, el texto es en realidad una serie de rutas. Cada letra es separada, lo que hace que Inkscape no pueda guardar un archivo tex diferente.

¿Por qué el texto no se representa como texto sino como rutas en el código a continuación? Tenga en cuenta que el uso de usetex=True no hace una diferencia.

Gracias.

from scipy.stats import lognorm from matplotlib import rc #rc(''text'', usetex=True) rc(''font'', family=''Times New Roman'') rc(''font'', size=''20.0'') mu = 1.7 sigma = 1.1 n, bins, patches = plt.hist(data, bins=10000, facecolor=''k'', edgecolor=''k'', normed=True, alpha=0.3, histtype=''stepfilled'', label=''//noindent Empirical data'') y = lognorm.pdf( bins, sigma, scale=np.exp(mu)) plt.xlim( (0,50) ) plt.plot(bins, y, ''-'', color=''k'', linewidth=2, label=''//noindent Lognormal curve'') plt.ylim( (0, .15) ) plt.xlabel(''my x label'') plt.ylabel(''my y label'') plt.grid() plt.legend() plt.savefig(os.path.expanduser(''~/myfile.svg''))


Otra opción, más permanente, es poner

svg.fonttype : none

en su matplotlibrc (~ / .config / matplotlib / matplotlibrc, por ejemplo)