我在使用 LaTeX 和 matplotlib 时遇到了困难。
我能够将错误减少到这个程度。
MWE
# %% LaTeX
import matplotlib as mpl
pgf_with_latex = { # setup matplotlib to use latex for output
"pgf.texsystem": "pdflatex", # change this if using xetex or lautex
"text.usetex": True, # use LaTeX to write all text
"font.family": "serif",
"pgf.preamble": "\n".join([ # plots will use this preamble
r"\usepackage[utf8]{inputenc}",
r"\usepackage[T1]{fontenc}",
])
}
mpl.use('pgf') # To use \siunitx
mpl.rcParams.update(pgf_with_latex)
# %% Import Data
import os
os.chdir(r"C:\Users\marco\Desktop")
import numpy as np
X = np.linspace(1, 5000, 3360)
Y = np.linspace(1, 5000, 3360)
# XList = [ np.linspace(1, 5000, 3360), np.linspace(1, 5000, 3360)]
# YList = [1* np.linspace(1, 5000, 3360), 2 * np.linspace(1, 5000, 3360)]
# %% Plotting
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1,
figsize=(6, 4),
dpi=500
)
ColorList = ["blue", "red"]
for i in range(2):
ax.plot(X,
(i+1) * Y,
label= f"i",
color= ColorList[i]
)
for i in range(len(XList)):
ax.scatter(XList[i],
YList[i] * 1000,
color = ColorList[i]
)
fig.savefig("Plot.png")
MNWE
# %% LaTeX
import matplotlib as mpl
pgf_with_latex = { # setup matplotlib to use latex for output
"pgf.texsystem": "pdflatex", # change this if using xetex or lautex
"text.usetex": True, # use LaTeX to write all text
"font.family": "serif",
"pgf.preamble": "\n".join([ # plots will use this preamble
r"\usepackage[utf8]{inputenc}",
r"\usepackage[T1]{fontenc}",
])
}
mpl.use('pgf') # To use \siunitx
mpl.rcParams.update(pgf_with_latex)
# %% Import Data
import os
os.chdir(r"C:\Users\marco\Desktop")
import numpy as np
# X = np.linspace(1, 5000, 3360)
# Y = np.linspace(1, 5000, 3360)
XList = [ np.linspace(1, 5000, 3360), np.linspace(1, 5000, 3360)]
YList = [1* np.linspace(1, 5000, 3360), 2 * np.linspace(1, 5000, 3360)]
# %% Plotting
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1,
figsize=(6, 4),
dpi=500
)
ColorList = ["blue", "red"]
# for i in range(2):
# ax.plot(X,
# np.log(X) * (i+1),
# label= f"i",
# color= ColorList[i]
# )
for i in range(len(XList)):
ax.scatter(XList[i],
YList[i] * 1000,
color = ColorList[i]
)
fig.savefig("PlotMNEW.png")
最后一个给出
RuntimeError: The command
pdflatex -interaction=nonstopmode -halt-on-error figure.tex
failed and generated the following output:
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (MiKTeX 22.7.26) (preloaded format=pdflatex.fmt)
restricted \write18 enabled.
entering extended mode
(figure.tex
LaTeX2e <2022-06-01> patch level 5
L3 programming layer <2022-07-15>
(D:\Programas\MiKTeX 2.9\tex/latex/hyperref\hyperref.sty
(D:\Programas\MiKTeX 2.9\tex/generic/ltxcmds\ltxcmds.sty)
(D:\Programas\MiKTeX 2.9\tex/generic/iftex\iftex.sty)
(D:\Programas\MiKTeX 2.9\tex/generic/pdftexcmds\pdftexcmds.sty
(D:\Programas\MiKTeX 2.9\tex/generic/infwarerr\infwarerr.sty))
(D:\Programas\MiKTeX 2.9\tex/latex/graphics\keyval.sty)
(D:\Programas\MiKTeX 2.9\tex/generic/kvsetkeys\kvsetkeys.sty)
(D:\Programas\MiKTeX 2.9\tex/generic/kvdefinekeys\kvdefinekeys.sty)
(D:\Programas\MiKTeX 2.9\tex/generic/pdfescape\pdfescape.sty)
(D:\Programas\MiKTeX 2.9\tex/latex/hycolor\hycolor.sty)
(D:\Programas\MiKTeX 2.9\tex/latex/letltxmacro\letltxmacro.sty)
(D:\Programas\MiKTeX 2.9\tex/latex/auxhook\auxhook.sty)
(D:\Programas\MiKTeX 2.9\tex/latex/hyperref\nameref.sty
(D:\Programas\MiKTeX 2.9\tex/latex/refcount\refcount.sty)
(D:\Programas\MiKTeX 2.9\tex/generic/gettitlestring\gettitlestring.sty
(D:\Programas\MiKTeX 2.9\tex/latex/kvoptions\kvoptions.sty)))
(D:\Programas\MiKTeX 2.9\tex/latex/hyperref\pd1enc.def)
(D:\Programas\MiKTeX 2.9\tex/generic/intcalc\intcalc.sty)
(D:\Programas\MiKTeX 2.9\tex/generic/etexcmds\etexcmds.sty)
(D:\Programas\MiKTeX 2.9\tex/latex/hyperref\puenc.def)
(D:\Programas\MiKTeX 2.9\tex/latex/url\url.sty)
(D:\Programas\MiKTeX 2.9\tex/generic/bitset\bitset.sty
(D:\Programas\MiKTeX 2.9\tex/generic/bigintcalc\bigintcalc.sty))
(D:\Programas\MiKTeX 2.9\tex/latex/base\atbegshi-ltx.sty)
Package hyperref Warning: Option `pdfpagelabels' is turned off
(hyperref) because \thepage is undefined.
) (D:\Programas\MiKTeX 2.9\tex/latex/hyperref\hpdftex.def
(D:\Programas\MiKTeX 2.9\tex/latex/rerunfilecheck\rerunfilecheck.sty
(D:\Programas\MiKTeX 2.9\tex/latex/base\atveryend-ltx.sty)
(D:\Programas\MiKTeX 2.9\tex/generic/uniquecounter\uniquecounter.sty)))
(D:\Programas\MiKTeX 2.9\tex/latex/base\minimal.cls
Document Class: minimal 2001/05/25 Standard LaTeX minimal class
) (D:\Programas\MiKTeX 2.9\tex/latex/geometry\geometry.sty
(D:\Programas\MiKTeX 2.9\tex/generic/iftex\ifvtex.sty)
(D:\Programas\MiKTeX 2.9\tex/latex/geometry\geometry.cfg))
(D:\Programas\MiKTeX 2.9\tex/latex/base\inputenc.sty)
(D:\Programas\MiKTeX 2.9\tex/latex/base\fontenc.sty)
(D:\Programas\MiKTeX 2.9\tex/latex/pgf/basiclayer\pgf.sty
(D:\Programas\MiKTeX 2.9\tex/latex/pgf/utilities\pgfrcs.sty
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/utilities\pgfutil-common.tex
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/utilities\pgfutil-common-lists.tex))
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/utilities\pgfutil-latex.def)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/utilities\pgfrcs.code.tex
(D:\Programas\MiKTeX 2.9\tex/generic/pgf\pgf.revision.tex)))
(D:\Programas\MiKTeX 2.9\tex/latex/pgf/basiclayer\pgfcore.sty
(D:\Programas\MiKTeX 2.9\tex/latex/graphics\graphicx.sty
(D:\Programas\MiKTeX 2.9\tex/latex/graphics\graphics.sty
(D:\Programas\MiKTeX 2.9\tex/latex/graphics\trig.sty)
(D:\Programas\MiKTeX 2.9\tex/latex/graphics-cfg\graphics.cfg)
(D:\Programas\MiKTeX 2.9\tex/latex/graphics-def\pdftex.def)))
(D:\Programas\MiKTeX 2.9\tex/latex/pgf/systemlayer\pgfsys.sty
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/systemlayer\pgfsys.code.tex
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/utilities\pgfkeys.code.tex
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/utilities\pgfkeysfiltered.code.tex))
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/systemlayer\pgf.cfg)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/systemlayer\pgfsys-pdftex.def
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/systemlayer\pgfsys-common-pdf.def)))
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/systemlayer\pgfsyssoftpath.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/systemlayer\pgfsysprotocol.code.tex))
(D:\Programas\MiKTeX 2.9\tex/latex/xcolor\xcolor.sty
(D:\Programas\MiKTeX 2.9\tex/latex/graphics-cfg\color.cfg)
(D:\Programas\MiKTeX 2.9\tex/latex-dev/graphics\mathcolor.ltx))
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcore.code.tex
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmath.code.tex
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathcalc.code.tex
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathutil.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathparser.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathfunctions.code.tex
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathfunctions.basic.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathfunctions.trigonometric.co
de.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathfunctions.random.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathfunctions.comparison.code.
tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathfunctions.base.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathfunctions.round.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathfunctions.misc.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathfunctions.integerarithmeti
cs.code.tex)))
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfmathfloat.code.tex))
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/math\pgfint.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcorepoints.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcorepathconstruct.code.t
ex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcorepathusage.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcorescopes.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcoregraphicstate.code.te
x)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcoretransformations.code
.tex) (D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcorequick.code.tex
) (D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcoreobjects.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcorepathprocessing.code.
tex) (D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcorearrows.code.tex
) (D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcoreshade.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcoreimage.code.tex
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcoreexternal.code.tex))
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcorelayers.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcoretransparency.code.te
x) (D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcorepatterns.code.tex
) (D:\Programas\MiKTeX 2.9\tex/generic/pgf/basiclayer\pgfcorerdf.code.tex)))
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/modules\pgfmoduleshapes.code.tex)
(D:\Programas\MiKTeX 2.9\tex/generic/pgf/modules\pgfmoduleplot.code.tex)
(D:\Programas\MiKTeX 2.9\tex/latex/pgf/compatibility\pgfcomp-version-0-65.sty)
(D:\Programas\MiKTeX 2.9\tex/latex/pgf/compatibility\pgfcomp-version-1-18.sty))
(D:\Programas\MiKTeX 2.9\tex/latex/l3backend\l3backend-pdftex.def)
No file figure.aux.
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
(D:\Programas\MiKTeX 2.9\tex/context/base/mkii\supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (D:\Programas\MiKTeX 2.9\tex/latex/epstopdf-pkg\epstopdf-base.sty
(D:\Programas\MiKTeX 2.9\tex/latex/00miktex\epstopdf-sys.cfg)) (figure.pgf
Runaway text?
q 0.0 -3.0004 m 0.79541 -3.0004 1.55898 -2.68398 2.12148 -2.12148 c 2\ETC.
! TeX capacity exceeded, sorry [main memory size=3000000].
<argument> ...8 c 1.55898 2.68398 0.79541 3.0004 0
.0 3.0004 c -0.79541 3.000...
l.20610 \pgfsys@useobject{currentmarker}{}
%
! ==> Fatal error occurred, no output PDF file produced!
Transcript written on figure.log.
and the following error:
我无法理解它。
- 我还可以为 MWE 上的 linspace 选择任意大的数字,并且它可以工作。
- 通过使用luatex代替pdflatex解决。但是,这会导致实际代码变得复杂(例如无法识别字体)。
- 在某些时候,我能够使用 LaTex 运行第二个代码的某些版本,而不会出现错误。
最佳答案
我遇到了同样的错误并找到了解决方案,这可能不是最好的,但对我有帮助。
据我了解,您想要在图中绘制的数据量太大。这意味着分配的内存量3000000太小,因此进程被中止。报告中出现以下错误消息:
! TeX 容量超出,抱歉 [主内存大小=3000000]。
您可以按如下方式增加此值。
- open a command window (Windows key and type "cmd") or the PowerShell (Windows key and type "Windows PowerShell").
- at the shell, enter
initexmf --edit-config-file=latex
- add the following line into the open editor (Be careful with the chosen memory size).
main_memory=12000000
to the file, save it and quit the editor.
- to rebuild the format, enter
initexmf --dump=latex
- repeat steps 2-4 with configuration files pdflatex and xelatex. Also you might want to repeat it with lualatex.
欲了解更多信息,请访问页面Increase LaTeX memory .
对于脚本MNWE我得到下图。
关于python - matplotlib 和 LaTeX - ! TeX 容量超出,抱歉 [主内存大小=3000000],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73200388/