![pgfplots 内存过载](https://linux22.com/image/271894/pgfplots%20%E5%86%85%E5%AD%98%E8%BF%87%E8%BD%BD.png)
我想绘制 5x9000+ 个数据点。我已经在使用:
\usepgfplotslibrary{external}
\tikzexternalize
和
-shell-escape -enable-write18
在 PDFLatex 中。但是,我仍然收到内存错误。我正在从这样的文件中读取数据:
\pgfplotstableread{C:\\data_1373554136.txt}
\datatable
%\addplot table[x = 0] from \datatable ;
\addplot table[y = 1] from \datatable ;
\addplot table[y = 2] from \datatable ;
\addplot table[y = 3] from \datatable ;
\addplot table[y = 4] from \datatable ;
\addplot table[y = 5] from \datatable ;
我的文件中的数据如下:
Time 0 1 2 3 4 5
0 0 0 0 0 0 0
1 0 1 7 19 1 115
我在 Windows 7 上使用 Miktex 运行。
有什么建议吗?
答案1
答案可能有点晚了,但只是为了记录一下。
就我而言,我发现 lualatex 非常慢。
相反,可以手动增加 pgfplots 外部化的内存。(数字是任意选择的,足够大,您可能需要调整它们)
\tikzexternalize[prefix=tikz,shell escape=-enable-write18]
\tikzset{external/system call= {pdflatex -save-size=80000
-pool-size=10000000
-extra-mem-top=50000000
-extra-mem-bot=10000000
-main-memory=90000000
\tikzexternalcheckshellescape
-halt-on-error
-interaction=batchmode
-jobname "\image" "\texsource"}}
或者你可以仅使用 lualatex 进行外部化
\tikzset{external/system call= {lualatex
\tikzexternalcheckshellescape
-halt-on-error
-interaction=batchmode
-jobname "\image" "\texsource"}}