我有两个数据文件(xxxx.txt
和yyyy.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}