如何减少我的论文的日志文件

如何减少我的论文的日志文件

我在论文中使用 pgfplots 绘制了几个图,但绘制了一半左右时编辑器就出现了加载日志文件的问题。有人能建议我减少这个问题的方法吗?我得到的错误是“坐标 (,) 因坐标过滤器而被删除。(另请参阅 unbounded coords=jump)”。我的所有图都是使用 pgfplots 添加的,所以我真的不想回去将它们作为图像导入(尤其是因为它们看起来不太好!)。我正在使用 TeXstudio 这是我的一个图的代码示例;

\documentclass{article}
\usepackage{pgfplots}
\usepackage{pgfplotstable} 
\usepackage{tikz}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{units} 
\begin{document}
\begin{figure}[h!]
    \begin{center}
    \begin{tikzpicture}
    \begin{axis}[ytick pos=left,xtick pos=left,
    %title=Particle size variation as a func. of CTA concentration,
    xlabel = $\dot{\gamma}$,
    ylabel = $\eta$,
    y unit=\si{\pascal\second},
    x unit=\si{\second^{-1}},
    %ymin=55,
    %ymax=70,
      ymode=log,
        log ticks with fixed point,
      xmode=log,
        log ticks with fixed point,
        % for log axes, x filter operates on LOGS.
        % and log(x * 1000) = log(x) + log(1000):
        %x filter/.code=\pgfmathparse{#1 + 6.90775527898214},
    legend style={draw=none},legend pos = outer north east, %outer if you like
    %width=300,height=280,
    width=340,height=230,
    %axis lines=left,
    enlargelimits=.1 % <- adds 10% of the axis range on both sides
    ]
    \addplot[only marks,mark = *,mark size=2,]table [x=B18x,y=B18y,col sep=comma,]{barea.csv};
    \addlegendentry{15 vol\%}
    \addplot[only marks,mark = diamond*,blue,mark size=2,]table [x=B16x,y=B16y,col sep=comma,]{barea.csv};
    \addlegendentry{14 vol\%}
    \addplot[only marks,mark = triangle*,green,mark size=2,]table [x=B14x,y=B14y,col sep=comma,]{barea.csv};
    \addlegendentry{12 vol\%}
    \addplot[only marks,mark = pentagon*,yellow,mark size=2,]table [x=B10x,y=B10y,col sep=comma,]{barea.csv};
    \addlegendentry{8 vol\%}
    \addplot[only marks,mark = asterisk,orange,mark size=2,]table [x=B6x,y=B6y,col sep=comma,]{barea.csv};
    \addlegendentry{5 vol\%}
    \addplot[only marks,mark = +,red,mark size=2,]table [x=B2x,y=B2y,col sep=comma,]{barea.csv};
    \addlegendentry{2 vol\%}
    \addplot[only marks,mark = o,mark size=2,]table [x=B18xh,y=B18yh,col sep=comma,]{barea.csv};
    \addplot[only marks,mark = diamond,blue,mark size=2,]table [x=B16xh,y=B16yh,col sep=comma,]{barea.csv};
    \addplot[only marks,mark = triangle,green,mark size=2,]table [x=B14xh,y=B14yh,col sep=comma,]{barea.csv};
    \addplot[only marks,mark = pentagon,yellow,mark size=2,]table [x=B10xh,y=B10yh,col sep=comma,]{barea.csv};
    \addplot[only marks,mark = star,orange,mark size=2,]table [x=B6xh,y=B6yh,col sep=comma,]{barea.csv};
    \addplot[only marks,mark = x,red,mark size=2,]table [x=B2xh,y=B2yh,col sep=comma,]{barea.csv};
    \addplot[mark=none,domain=0:4]table [x=B18xc,y=B18yc,col sep=comma,]{barea.csv};
    \addplot[mark=none,domain=0:4]table [x=B16xc,y=B16yc,col sep=comma,]{barea.csv};
    \addplot[mark=none,domain=0:4]table [x=B14xc,y=B14yc,col sep=comma,]{barea.csv};
    \addplot[mark=none,domain=0:4]table [x=B10xc,y=B10yc,col sep=comma,]{barea.csv};
    \addplot[mark=none,domain=0:4]table [x=B6xc,y=B6yc,col sep=comma,]{barea.csv};
    \addplot[mark=none,domain=0:4]table [x=B2xc,y=B2yc,col sep=comma,]{barea.csv};
    \addplot[only marks,mark = x,orange,mark size=2,]table [x=B1x,y=B1y,col sep=comma,]{barea.csv};
    \addplot[mark=none,domain=0:4]table [x=B1xc,y=B1yc,col sep=comma,]{barea.csv};
    \end{axis}
    \end{tikzpicture}
    \caption{Bare}
    \label{fig:Bare}
    \end{center}
    \end{figure}
    \end{document}

有什么办法可以解决这个问题吗?如果这个问题很愚蠢,请原谅我 - 我对乳胶还比较陌生!

我使用的 csv 文件链接

答案1

您可能应该通过 pgf 密钥访问它,但我没有看到它,但您可以通过添加来关闭过滤器日志记录

\makeatletter
\pgfplots@warn@for@filter@discardsfalse
\makeatother

加载包后,进入你的序言。

请注意,您的示例会产生错误

! Undefined control sequence.
\pgfk@/pgfplots/x unit ->\si 
                             {\second ^{-1}}
l.61     \end{axis}

但这似乎无关。

答案2

我可能会使用externalize,即添加

\usepgfplotslibrary{external}
\tikzexternalize

在您的文档前言中,请参阅 pgfplots 手册第 3.2.6 节。然后,您只需一次获得大型日志文件,还可以在后续编译中节省一些时间。

答案3

您的示例(不带\si)给我一个 1.4MB 的日志文件,长 26858 行。其中 26244 行来自这两行的 13122 个实例

NOTE: coordinate (,) has been dropped because of a coordinate filter. (see also
 unbounded coords=jump). 

因此大约 98% 的日志行都是因为这个。

但您的 CSV 实际上是多对列,它们恰好位于同一个文件中。它类似于:

B18x,B18y,B16x,B16y,B14x,B14y
   1,   2,   3,   4,   5,   6
   7,   8,   9,  10,    ,
  11,  12,    ,    ,    ,

例如,您永远不会同时对 B18y 和 B16x 执行任何操作。事实上,您有 20 对列,您将其读入 20 个不同的绘图命令。然而,您的 CSV 有 13122 个空白坐标对,这与警告数量非常接近,这令人怀疑。

因此,正确的方法是将不同的数据分成不同的文件(可能放在它们自己的子目录中,以保证完整性)。然后,您将加载仅包含 B18x 和 B18y 列的 B18.csv,并且您将加载仅包含 B18xh 和 B18yh 列的 B18h.csv。

但如果你不想创建 20 个不同的文件,你可以添加

filter discard warning=false,

到轴选项。这样日志文件就减少到 614 行。缺点是,如果您丢弃了本应是有效点的内容,您将不会发现它。

相关内容