具有大数据集的外部 pgfplots(lualatex?)

具有大数据集的外部 pgfplots(lualatex?)

我有相当大的数据集,其中包含结构密集的数据,如果不丢失结构,我无法对其进行大量下采样。我在 Ubuntu 14.04LTS 上使用 TexMaker。我使用

\usepackage{tikz,pgfplots,pgfplotstable}
\pgfplotsset{compat=1.9}
\usepgfplotslibrary{external}
\tikzexternalize

\tikzsetnextfilename{figs/test1}

将图形外部化。使用 进行编译效果很好pdflatex -shell-escape。但随着数据变得太大,我的内存不足了。我尝试使用LuaLaTeX -shell-escape而不是 pdfLatex 进行编译,但收到以下错误消息:

! Package tikz Error: Sorry, the system call 'pdflatex -halt-on-error -interact
ion=batchmode -jobname "figs/test1" "\def\tikzexternalrealjob{article}\input{ar
ticle}"' did NOT result in a usable output file 'figs/test1' (expected one of .
pdf:.jpg:.jpeg:.png:). Please verify that you have enabled system calls. For pd
flatex, this is 'pdflatex -shell-escape'. Sometimes it is also named 'write 18'
or something like that. Or maybe the command simply failed?

因此pgfPlots似乎pdfLatex在没有适当-shell-escape标志的情况下调用,也没有我指定它。我怎样才能让它在编译中LuaLatex?或者我可以只编译中的数字,LuaLatex其余的在编译中pdfLatex(与现在发生的情况相反)?我发现例如,但都没有帮助我......

谢谢您的帮助,我也感谢任何可以帮助我解决在 pgfplots 中绘制更大数据集的问题的一般建议。

干杯/J

答案1

因此,我借助 pgfplots 手册第 470-2 页的帮助解决了这个问题,并且另一个问题。我在序言中提到了这一点:

\usepackage{tikz,pgfplots,pgfplotstable}
\pgfplotsset{compat=1.9}
%\usetikzlibrary{external}
\usepgfplotslibrary{external}
\tikzexternalize

\tikzset{external/system call={lualatex -shell-escape -halt-on-error -interact
ion=batchmode -jobname "\image" "\texsource"}}
\usepackage{luaotfload}
\usepackage[EU2]{fontenc}
\usepackage{lmodern}

lualatex -shell-escape article.tex从命令行编译或-shell-escape在 lualatex 编译选项中添加texMaker,使其变为lualatex -shell-escape -interaction=nonstopmode %.tex。调整图像的位大小以平衡编译时间的另一个有用方法是在 pgfplots 中使用 gnuplot 并使用语句every减少数据的采样,即使只编译一次。像这样:

\addplot gnuplot 
            [raw gnuplot, mark=none, color=red] 
            {plot '../0/cf/cf3p-bw/cross.dat' every 10};

这是另一个问题中提出的建议,我现在找不到。在我的情况下,使用every 100使文档即使在经过调整的序言中也可以在 pdflatex 中编译,但对图的扭曲太大。使用 pdflatex (使用every 1) 编译文档对我来说不起作用,因为尽管有声明,但来自 tikz 的系统调用被定向到 pdfplots 而不是 lualatex \tikzset

相关内容