将我的图拆分为数据/格式部分

将我的图拆分为数据/格式部分

pgfplots没有办法将所有数据放在单身的 数据库文件?现在我将共享相同 x 值的线合并到一个文件中,但对于使用不同 x 值的每个图,我必须有一个不同的数据文件。有没有办法合并这些文件?

换句话说,在下面的 MWE 中,有没有办法line12.dat与相结合line3.dat。我的情节比这复杂得多,每行都有一个文件非常笨重。

nan我知道我可以对未在 x 值中定义的行使用。但我希望有更好的方法,因为如果行不共享许多 x 值(如下所示),数据文件可能会变得非常冗长。

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{filecontents}{line12.dat}
  x y1 y2
  0 1  2
  1 2  5
  2 3  5
  4 5  3
  7 9  1
\end{filecontents}

\begin{filecontents}{line3.dat}
  x y
  2 1
  4.1 2
  6.1 3
  8.1 5
  10.1 9
\end{filecontents}

\begin{document}

\begin{tikzpicture}

  \begin{axis}
    \addplot[] table[x=x, y=y1] {line12.dat};
    \addplot[] table[x=x, y=y2] {line12.dat};
    \addplot[] table[x=x, y=y] {line3.dat};
  \end{axis}
\end{tikzpicture}
\end{document}

答案1

一般的答案是:.
要求是全部列必须具有相同数量的行。

但它对于您的具体示例来说,这是可能的,因为每列都有 5 个数据点......

% used PGFPlots v1.15
    \begin{filecontents*}{line123.dat}
        x1  y1  y2      x3      y3
        0   1   2       2       1
        1   2   5       4.1     2
        2   3   5       6.1     3
        4   5   3       8.1     5
        7   9   1       10.1    9
    \end{filecontents*}
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
    \begin{axis}
        \addplot table [x=x1, y=y1] {line123.dat};
        \addplot table [x=x1, y=y2] {line123.dat};
        \addplot table [x=x3, y=y3] {line123.dat};
    \end{axis}
\end{tikzpicture}
\end{document}

该图显示了上述代码的结果

相关内容