PGFPlots !未定义控制序列。\pgfmath@dimen@ ...men@@ #1=0.0pt\relax \pgfmath@

PGFPlots !未定义控制序列。\pgfmath@dimen@ ...men@@ #1=0.0pt\relax \pgfmath@

这与我之前问过的一个问题,其中我试图根据未绘制的变量的值选择数据行。根据该问题的答案,我使用“x expr”和“\thisrow”来确定应包括哪些行。

但是,我想在 \foreach 循环中使用代码,如下所示(这不是完整的 MWE,因为我没有包含数据。如果数据似乎有必要,我会添加一些示例)。我一直收到错误

! Undefined control sequence.
\pgfmath@dimen@ ...men@@ #1=0.0pt\relax \pgfmath@ 

根据 StackExchange 中的问题,这种情况似乎是由于与宏扩展相关的各种原因而发生的。有什么想法可以避免这种错误吗?

\documentclass[12pt]{article}

\usepackage{pgfplots,pgfplotstable}
\pgfplotsset{compat=1.15}

\newcommand{\dir}{n:/pathtodata}


\begin{document}

\newcommand{\outcomestest}{
  attn/Attendance,
  enrollall_00/Enrollment,
  all_mth00pctprof_00/Math Proficiency,
  all_rla00pctprof_00/Reading Proficiency}



\foreach \outcome/\label in \outcomestest{
  \begin{tikzpicture}
    \begin{axis}[ymin=-30,ymax=30,title=\label, xlabel=Year]
      \draw [red](axis cs:-4,0) -- (axis cs:2,0);
      \addplot table [x expr={\thisrow{bias}==1?nan:\thisrow{period}},y=b]{\dir/main_\outcome_primary.txt};
      \addplot table [x expr={\thisrow{bias}==0?nan:\thisrow{period}},y=b]{\dir/main_\outcome_primary.txt};
    \end{axis}
  \end{tikzpicture}}

\end{document}

谢谢!

相关内容