pgfplots:将数据文件的整列相互添加/减去吗?

pgfplots:将数据文件的整列相互添加/减去吗?

我想分析以下格式的数据文件

0.01    1.00    11.00    21.00
0.02    2.00    12.00    22.00
0.03    3.00    13.00    23.00
0.04    4.00    14.00    24.00
0.05    5.00    15.00    25.00

我想创建一个pgfplots使用第一列作为 x 值的图。y 值应通过将其他几列相加或相减来获得 - 有点像电子表格应用程序可以做到的那样。如何使用来实现这一点pgfplots?如果可能的话,是否可以轻松地用线而不是列来做同样的事情,或者执行其他简单的数学计算(乘法、取对数等)?

答案1

您可以使用\addplot table [y expr=...] {<inline table or table macro>};来指定要绘制的内容。如果您的列有名称,则可以使用 来访问它们y expr\thisrow{<column name>}如果您想使用列索引,请使用\thisrowno{<column number>}。如果只需加载一次表而不是将其提供给每个绘图,请使用 命令\pgfplotstableread{<table contents>}<\tablemacro>

\documentclass{standalone}

\usepackage{pgfplots}
\usepackage{pgfplotstable} % For \pgfplotstableread

\pgfplotstableread{
0.01    1.00    11.00    21.00
0.02    2.00    12.00    22.00
0.03    3.00    13.00    23.00
0.04    4.00    14.00    24.00
0.05    5.00    15.00    25.00
}\datatable

\begin{document}
\begin{tikzpicture}
\begin{axis}[ymin=0, ymax=60]
\addplot table [y expr=\thisrowno{1} + \thisrowno{2} + \thisrowno{3}] {\datatable}; \addlegendentry{$1 + 2 + 3$}
\addplot table [y expr=\thisrowno{2} - \thisrowno{1}] {\datatable}; \addlegendentry{$2-1$}

\end{axis}
\end{tikzpicture}
\end{document}

相关内容