python - matplotlib 和 LaTeX - ! TeX 容量超出,抱歉 [主内存大小=3000000]

标签 python matplotlib latex pdflatex

我在使用 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]。

您可以按如下方式增加此值。

  1. open a command window (Windows key and type "cmd") or the PowerShell (Windows key and type "Windows PowerShell").
  2. at the shell, enter

initexmf --edit-config-file=latex

  1. 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.

  1. to rebuild the format, enter

initexmf --dump=latex

  1. repeat steps 2-4 with configuration files pdflatex and xelatex. Also you might want to repeat it with lualatex.

欲了解更多信息,请访问页面Increase LaTeX memory .

对于脚本MNWE我得到下图。

Figure MNWE

关于python - matplotlib 和 LaTeX - ! TeX 容量超出,抱歉 [主内存大小=3000000],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73200388/

相关文章:

python - 如何在子类的 __init__() 中附加另一个参数?

python - seaborn boxplot 和 stripplot 点未按色调在 x 轴上对齐

emacs - 在 emacs 中将文本环绕选择

python - 如何在 matplotlib 轴上绘制 iGraph 对象

python - 如何在函数中编写条件来进行此注释 Python

python - 如何使用 appium 以通用方式查找使用文本的元素以实现 ios 自动化?

python - 如何在 macOS 上使用非阻塞 matplotlib(如 IPython 的 %matplotlib)构建 Python REPL

python - 为 maptlotlib FuncAnimation 维护一个颜色条

latex - 格式化 TOC 中未编号的章节

haskell - 将任何文学 Haskell 渲染为 PDF、HTML 或类似文件