当 x 和 y 数据存储在不同的文件中时,如何使用 pst-plot 绘图?
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{pst-plot}
\usepackage{auto-pst-pdf}
\begin{document}
\begin{postscript}
\readdata{\xData}{x.dat}
\readdata{\yData}{y.dat}
\begin{psgraph}[axesstyle=frame](0,0)(25,7.5){10cm}{6cm}
\listplot{**What to do here?**}
\end{psgraph}
\end{postscript}
\end{document}
答案1
在 PostScript 中你可以任何事物:
\readdata{\xData}{x.dat}
\readdata{\yData}{y.dat}
\def\DATA{
/X [\xData] def /Y [\yData] def % save as array
0 1 X length 1 sub { % on stack is the loop variable
/Index ED % save it
X Index get Y Index get % get x y
} for } % end for loop
\begin{psgraph}[axesstyle=frame,Dx=2](0,0)(25,7.5){10cm}{6cm}
\listplot{\DATA}
\end{psgraph}
答案2
以下是使用 PGFPlots 执行此操作的方法。您可以使用样式使来自不同表的列可用copy column from table
。
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots, pgfplotstable}
\usepackage{filecontents}
\begin{filecontents}{A.dat}
0
1
2
3
4
5
\end{filecontents}
\begin{filecontents}{B.dat}
0
1
4
9
16
25
\end{filecontents}
\pgfplotstableset{
create on use/y/.style={create col/copy column from table={B.dat}{0}}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table [y=y] {x.dat};
\end{axis}
\end{tikzpicture}
\end{document}