![在 pgfplots 中定义多个索引的列表](https://linux22.com/image/373759/%E5%9C%A8%20pgfplots%20%E4%B8%AD%E5%AE%9A%E4%B9%89%E5%A4%9A%E4%B8%AA%E7%B4%A2%E5%BC%95%E7%9A%84%E5%88%97%E8%A1%A8.png)
\foreach
我正在尝试使用循环命令以pgfplotstable
以下方式绘制几列对。
\documentclass[tikz]{standalone}
\usepackage{pgfplots,pgfplotstable}
\begin{document}
\begin{tikzpicture}
\def \x {data.txt}
\begin{axis}
[
xlabel={x},
ylabel={y},
]
\foreach \i/\j in {0/1,2/3,4/5,6/7,8/9,10/11}{
\edef\temp{\noexpand\addplot[smooth,color=blue,no marks] table[x index=\i,y index=\j] {\x};
}
\temp
}
\end{axis}
\end{tikzpicture}
\end{document}
有没有办法像下面这样自动创建两个变量的列表
\foreach \i/\j in {0/1,2/3,...,10/11}
这似乎不起作用?
答案1
根据评论和之前提出的问题,我找到了一种基于父列表定义定义连续列表的方法,可以将其作为绘图的索引传递pgfplotstable
。工作代码如下。
\documentclass[tikz]{standalone}
\usepackage{pgfplots,pgfplotstable}
\begin{document}
\begin{tikzpicture}
\def \x {data.txt}
\begin{axis}
[
xlabel={x},
ylabel={y},
]
\foreach[evaluate=\j using int(\i+1)] \i in {0,2,...,38}
{
\edef\temp{\noexpand\addplot[smooth,color=blue,no marks] table[x index=\i,y index=\j] {\x};
}
\temp
}
\end{axis}
\end{tikzpicture}
\end{document}