For循环在pgfplot中是"stucked"
For loop is "stucked" inside a pgfplot
我正在尝试使用 pgfplots 在乳胶中制作一些图;因为我要制作几个不同的图,所以我尝试使用 for 循环。不幸的是,没有成功。实际上,代码执行了三次,但是 for 循环的变量值始终等于定义循环的列表的第一个值。
例如下面的最小代码
\documentclass[a4paper, 11pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{groupplots}
\begin{document}
\makeatletter
\begin{tikzpicture}
\begin{groupplot}[group style={group size= 2 by 3}]
\@for\refin:={1,2,3}\do{%
\nextgroupplot[ylabel={$h = \frac{1}{\refin}$}]
\addplot {exp(x)};
\nextgroupplot
\addplot{2 * x};
}
\end{groupplot}
\end{tikzpicture}
\makeatother
\end{document}
生成一个包含 6 个绘图的图形(如预期的那样),但标签始终为 1/1 而不是 1/2 或 1/3。为什么?
您可以使用与 https://tex.stackexchange.com/a/539754/36296 相同的技巧:
\documentclass[a4paper, 11pt]{article}
\usepackage{pgffor}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[group style={group size= 2 by 3}]
\pgfplotsforeachungrouped \x in {1,2,3}{
\edef\tmp{
\noexpand\nextgroupplot[ylabel={$h = \frac{1}{\x}$}]
\noexpand\addplot {exp(x)};
}
\tmp
\nextgroupplot
\addplot{2 * x};
}
\end{groupplot}
\end{tikzpicture}
\end{document}
我正在尝试使用 pgfplots 在乳胶中制作一些图;因为我要制作几个不同的图,所以我尝试使用 for 循环。不幸的是,没有成功。实际上,代码执行了三次,但是 for 循环的变量值始终等于定义循环的列表的第一个值。
例如下面的最小代码
\documentclass[a4paper, 11pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{groupplots}
\begin{document}
\makeatletter
\begin{tikzpicture}
\begin{groupplot}[group style={group size= 2 by 3}]
\@for\refin:={1,2,3}\do{%
\nextgroupplot[ylabel={$h = \frac{1}{\refin}$}]
\addplot {exp(x)};
\nextgroupplot
\addplot{2 * x};
}
\end{groupplot}
\end{tikzpicture}
\makeatother
\end{document}
生成一个包含 6 个绘图的图形(如预期的那样),但标签始终为 1/1 而不是 1/2 或 1/3。为什么?
您可以使用与 https://tex.stackexchange.com/a/539754/36296 相同的技巧:
\documentclass[a4paper, 11pt]{article}
\usepackage{pgffor}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[group style={group size= 2 by 3}]
\pgfplotsforeachungrouped \x in {1,2,3}{
\edef\tmp{
\noexpand\nextgroupplot[ylabel={$h = \frac{1}{\x}$}]
\noexpand\addplot {exp(x)};
}
\tmp
\nextgroupplot
\addplot{2 * x};
}
\end{groupplot}
\end{tikzpicture}
\end{document}