是否可以pgfplots
使用来自不同文件的数据绘制图表?
假设我有两个数据文件:data.dat
和error.dat
,我想绘制第 1 列与第 0 列的图表data.dat
,并添加误差线error.dat
。
如果所有数据都来自同一个文件all.dat
,我会使用:
\pgfplotstableread{./all.dat}\mytable
\addplot table[x index=0,y index=1, y error index=3]{\mytable};
答案1
这是可能的。您可以使用以下方法动态地从不同的表中获取列
\pgfplotstableset{
create on use/<new column name>/.style={
create col/copy column from table={<file or table>}{<column name>}
}
}
因此,为了得到类似
你可以做类似的事情
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{data.dat}
X Y
1 3
2 7
3 4
4 5
5 5
6 9
\end{filecontents}
\begin{filecontents}{error.dat}
Errors
1
3
2
2.5
3
1
\end{filecontents}
\usepackage{pgfplots,pgfplotstable}
\pgfplotstableread{data.dat}\datatable
\pgfplotstableset{
create on use/errors/.style={
create col/copy column from table={error.dat}{Errors}
}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=0,ymin=0]
\addplot +[
black,
error bars/.cd,
y explicit,
y dir=both
] table [y error=errors] {\datatable};
\end{axis}
\end{tikzpicture}
\end{document}