在 pgfplots 中处理数据:逐元素乘法?

在 pgfplots 中处理数据:逐元素乘法?

我喜欢在 pgfplots 中处理从文件中读取的数据。请考虑以下示例:

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage{pgfplots, pgfplotstable}
\usepgfplotslibrary{units}

\begin{document}

\begin{tikzpicture}

\pgfplotstableread{chi_probe.dat}{\data}
\pgfplotstablecreatecol[copy column from table={grid_omega_opt.dat}{0}] {xData} {\data}

\begin{axis}

\addplot[
black
] table [
x expr = \thisrowno{2}*1.054571726e-34,
y expr = \thisrowno{2}*\thisrowno{1}
] {\data};

\legend{probe,differential}

\end{axis}

\end{tikzpicture}

\end{document}

我所做的是将 x 值与 \hbar 相乘。y 轴实际上应该显示 x*y,这意味着元素相乘,意味着 Y1=x1*y1、Y2=x2*y2 等,其中 Y 是 y 轴值。更一般地说:在列上应用的任何函数(例如 ^2、sqrt 等)是否都是按元素执行的?

答案1

是的,表达式是按元素应用的。

请注意,如果应用指数,则依赖于宏中的值的表达式(如\thisrowno{0})通常需要用圆括号括起来,即sqrt((\thisrowno{0})^2)而不是sqrt(\thisrowno{0}^2)

相关内容