这与我之前问过的一个问题,其中我试图根据未绘制的变量的值选择数据行。根据该问题的答案,我使用“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}
谢谢!