我遇到的问题是,在某些情况下,如果读取的输入文件中有空行,则不会绘制表格中的图表。边界等已正确绘制和设置,并且日志中没有显示任何错误。
让我们直接从 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}