Puede que se de el caso de que encuentres alguna incompatibilidad en tu código o proyecto, recuerda probar siempre en un entorno de testing antes aplicar el código al proyecto final.
Solución:
El backend matplotlib PGF se guarda como PGF sin formato. Lo que probablemente quieras en su lugar es pgfplots
que puedes obtener usando tikzplotlib
suponiendo que sus gráficos no sean demasiado complejos y que se admitan todas las funciones.
Ejemplo de secuencia de comandos de Python para crear una figura:
from pylab import *
from tikzplotlib import save as tikz_save
x = linspace(0, 10, 101)
plot(x, sin(x))
xlabel('$x$-axis')
ylabel('$y$-axis')
tikz_save('fig.tikz',
figureheight = '\figureheight',
figurewidth = '\figurewidth')
Ejemplo de documento adjunto de LaTeX que trae las gráficas con dos dimensiones diferentes (puede usar input
; Estoy usando InputIfFileExists
para que las cifras faltantes no eliminen la compilación):
documentclassarticle
usepackagepgfplots
newlengthfigureheight
newlengthfigurewidth
begindocument
setlengthfigureheight2in
setlengthfigurewidth3in
InputIfFileExistsfig.tikztextbf!! Missing graphics !!
setlengthfigureheight3in
setlengthfigurewidth4in
InputIfFileExistsfig.tikztextbf!! Missing graphics !!
enddocument
Producción:
Dependiendo de lo que esté haciendo, también podría considerar usar mi paquete PythonTeX para poner todo en la fuente de LaTeX:
documentclassarticle
usepackagepgfplots
usepackage[stdout=false]pythontex
% matplotlib2tikz prints messages to stdout, so don't include
% stdout automatically; could also redirect stdout to avoid this
setpythontexworkingdir.
% set PythonTeX to use the document root directory as the working
% directory, so that all plots will be saved there; could use
% another location, but then would need to specify a path when
% using input and InputIfFileExists
newlengthfigureheight
newlengthfigurewidth
begindocument
beginpycode
from pylab import *
from tikzplotlib import save as tikz_save
x = linspace(0, 10, 101)
plot(x, sin(x))
xlabel('$x$-axis')
ylabel('$y$-axis')
tikz_save('fig.tikz',
figureheight = '\figureheight',
figurewidth = '\figurewidth')
endpycode
setlengthfigureheight2in
setlengthfigurewidth3in
InputIfFileExistsfig.tikztextbf!! Missing graphics !!
setlengthfigureheight3in
setlengthfigurewidth4in
InputIfFileExistsfig.tikztextbf!! Missing graphics !!
enddocument