\pgfplotsinvokeforeach 之前有绘图宏时出错

\pgfplotsinvokeforeach 之前有绘图宏时出错

为什么\pgfplotsinvokeforeach生产

错误:未定义控制序列。

当其内部之前有绘图宏时groupplot

\documentclass{article}

\usepackage{pgfplots}

\usepgfplotslibrary{groupplots}

\begin{document}

\begin{figure}
  \begin{tikzpicture}
    \begin{groupplot}[group style={group size=3 by 1}]
      \nextgroupplot        % When this and...
      \addplot{x^1};        % this line is commented there is no error
      \pgfplotsinvokeforeach{2,3}{%
        \nextgroupplot
        \addplot{x^#1};%
      }
   \end{groupplot}
 \end{tikzpicture} 
\end{figure}

\end{document}

答案1

我不确定,但这是由于foreach循环内的分组导致的,因此pgfplots认为存在不允许的嵌套。因此,只需进行一点手动取消分组工作,即可得到结果。

\documentclass{article}

\usepackage{pgfplots}

\usepgfplotslibrary{groupplots}

\begin{document}

\begin{figure}
  \begin{tikzpicture}[scale=0.7]
    \begin{groupplot}[group style={group size=3 by 1}]
      \pgfplotsforeachungrouped \x in {1,2,3}{%
        \edef\temp{\noexpand\nextgroupplot%
        \noexpand\addplot{x^\x};%
      }\temp
    }
   \end{groupplot}
 \end{tikzpicture} 
\end{figure}

\end{document}

在此处输入图片描述

相关内容