在 pgfplots 中读取表格时的空行处理

在 pgfplots 中读取表格时的空行处理

我遇到的问题是,在某些情况下,如果读取的输入文件中有空行,则不会绘制表格中的图表。边界等已正确绘制和设置,并且日志中没有显示任何错误。

让我们直接从 MWE 开始

\documentclass[]{standalone}
\usepackage{pgfplots,pgfplotstable} 
\pgfplotsset{compat=newest}

\begin{filecontents}{data1.txt}
0 0

1 1
\end{filecontents}


\begin{filecontents}{data2.txt}
0 0
1 1
\end{filecontents}

\begin{document}
\begin{tikzpicture}
\begin{axis}

  \addplot [color=black] table[x index =0, y index = 1,]   {./data1.txt}; 

  \addplot [color=red,very thick,dashed] table[x index =0, y index = 1,]   {./data2.txt}; 

\end{axis}
\end{tikzpicture} 
\end{document}  

以及结果

在此处输入图片描述

期望的结果当然会包含两条相同的线:

在此处输入图片描述

当使用 执行相同操作时pgfplotstableread,两个命令都可以正常工作(即两个数据集都可以工作)。但对于大型数据集,这不是一个选择。

不知何故,简单的方法在表格数据中存在空行问题。有趣的是,如果第一个方法不接收和选项(甚至不接收空选项),table {filename}则不会发生这种情况。\addplot[]

这是期望的行为吗?在读取表格时,是否可以像在 MWE 中一样忽略空行?

答案1

要删除空行,您只需说empty line=none,请参阅手册第 45 页。

\documentclass[]{standalone}
\usepackage{pgfplots,pgfplotstable} 
\pgfplotsset{compat=newest}

\begin{filecontents*}{data1.txt}
0 0

1 1
\end{filecontents*}


\begin{filecontents*}{data2.txt}
0 0
1 1
\end{filecontents*}

\begin{document}
\begin{tikzpicture}
\begin{axis}

  \addplot [color=black,empty line=none] table[x index =0, y index = 1]   {./data1.txt}; 

  \addplot [color=red,very thick,dashed] table[x index =0, y index = 1]   {./data2.txt}; 

\end{axis}
\end{tikzpicture} 
\end{document}  

相关内容