获取表的列数

获取表的列数

考虑以下情节

\documentclass{article}
\usepackage{pgfplots}

\begin{document} 

\pgfplotstableread{
1 3 6 4
2 2 5 2
3 4 4 1
4 5 2 3
}\table

\begin{tikzpicture}
  \begin{axis}
    \foreach \i in {1,...,3}{%
      \addplot table[x index=0,y index=\i] {\table};
                            }
  \end{axis}
\end{tikzpicture}

\end{document}

我想将其用作不同列数的输入文件的模板。为此,我需要用加载表的列数替换3ine命令。在这个环境中是否有类似的东西可以理解?foreach\pgfplotstablecols

答案1

\pgfplotstablegetcolsof{<table>},它存储了宏中给定表的列数\pgfplotsretval。您需要从这个数字中减一才能获得最后一列的正确索引:

\documentclass{article}
\usepackage{pgfplots}

\begin{document} 

\pgfplotstableread{
1 3 6 4 2
2 2 5 2 1
3 4 4 1 5
4 5 2 3 1
}\table

\begin{tikzpicture}
  \begin{axis}
  \pgfplotstablegetcolsof{\table}
  \pgfmathparse{\pgfplotsretval-1}
    \foreach \i in {1,...,\pgfmathresult}{%
      \addplot table[x index=0,y index=\i] {\table};
                            }
  \end{axis}
\end{tikzpicture}

\end{document}

相关内容