绘制来自不同文件/表的 xy 数据

绘制来自不同文件/表的 xy 数据

我有两个数据文件(xxxx.txtyyyy.txt),每个文件分别只包含一列 x 和 y 数据。现在我想将这两个数据绘制在一个简单的 2D 图中。有人知道这是怎么做到的吗?

到目前为止,我总是将 x 和 y 数据放在一个文件中(两列,第一列是 x,第二列是 y)。因此没有问题,我将数据绘制如下:

\begin{tikzpicture}
\begin{axis}
   \addplot table {datatable.txt};
\end{axis}
\end{tikzpicture}

有人有有用的想法或解决方案吗?

答案1

是的,pgfplotstable允许您定义类似“虚拟列”的内容,这些内容在您尝试访问它们时创建(例如,在命令中\addplot table或使用\pgfplotstabletypeset),它们可以通过多种方式获取数据。这些虚拟列的创建方法之一是copy column from table={<table or file name>}{<column name>}

如果你设置

\pgfplotstableset{
    create on use/Y/.style={create col/copy column from table={dataB.txt}{0}}
}

然后,每当您尝试访问列(无论哪个表)时,都会使用Y以下数据:dataB.txt

\documentclass{article}
\usepackage{pgfplots, pgfplotstable}
\usepackage{filecontents}
\begin{filecontents}{dataA.txt}
2
3
4
5
3
5
\end{filecontents}
\begin{filecontents}{dataB.txt}
5
4
3
2
5
5
\end{filecontents}

\pgfplotstableset{
    create on use/Y/.style={create col/copy column from table={dataB.txt}{0}}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table [y=Y] {dataA.txt};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容