Использование \addplot+ и \foreach в pgfplot

Использование \addplot+ и \foreach в pgfplot

У меня есть четыре текстовых файла с 21 столбцом в каждом, и я хочу построить график для каждого файла, первый столбец как x, а затем 20 следующих столбцов как y. Для каждого файла, затем объединить все это на одном графике. Это по сути 20 повторов при 4 различных условиях.

У меня есть следующий код, использующий \foreach, но я хотел бы сделать его чище, используя \addplot+вместо \addplotаргумента fill. Если я использую \addplot+внутри \foreachцикла, то каждый повтор будет иметь свой собственный цвет, а это не совсем то, что мне нужно.

Если говорить точнее, следующий код делает то, что мне нужно, но я хотел бы услышать о решениях, которые позволят сделать его лучше.

\documentclass[professionalfonts,11pt]{beamer}
\begin{document}
\begin{frame}{Conséquences des variations du taux de croissance}

\begin{center}
    \begin{tikzpicture}
        \begin{semilogyaxis}[
            xlabel=Temps,
            ylabel={Taille de population},
            cycle list name = monokai,
            legend pos = north west
            ]
            \foreach \yindex in {2,...,20}
                \addplot[mark = none, draw = RYB1] table [y index = \yindex] {data/vardem_30.dat};
            \foreach \yindex in {2,...,20}
                \addplot[mark = none, draw = RYB2] table [y index = \yindex] {data/vardem_10.dat};
            \foreach \yindex in {2,...,20}
                \addplot[mark = none, draw = RYB3] table [y index = \yindex] {data/vardem_3.dat};
            \foreach \yindex in {2,...,20}
                \addplot[mark = none, draw = RYB4] table [y index = \yindex] {data/vardem_1.dat};
        \end{semilogyaxis}
    \end{tikzpicture}
\end{center}

\end{frame}
\end{document}

решение1

  • Ваш пример отсутствует\usepackage{pgfplots}
  • Вам не обязательно это нужно draw=color, просто colorдостаточно
  • Какударныесказал, что одной foreachпетли должно быть достаточно
  • Вы сказали, что у вас 21 столбец, поэтому цикл должен выполняться до этого значения.
  • \addplot[options]следует выполнить только options, поэтому вы можете пропустить mark=none. В противном случае вы можете указать\pgfplotsset{every axis plot post/.append style={mark=none}}

\documentclass[professionalfonts,11pt]{beamer}
\usepackage{pgfplots}

\begin{document}

\begin{frame}{Conséquences des variations du taux de croissance}
    \begin{center}
        \begin{tikzpicture}
          \begin{semilogyaxis}
          [ xlabel=Temps,
            ylabel={Taille de population},
            cycle list name = monokai,
            legend pos = north west,
            ]
          \foreach \yindex in {2,...,21}
            {   \addplot[RYB1] table [y index = \yindex] {data/vardem_30.dat};
            \addplot[RYB2] table [y index = \yindex] {data/vardem_10.dat};
            \addplot[RYB3] table [y index = \yindex] {data/vardem_3.dat};
            \addplot[RYB4] table [y index = \yindex] {data/vardem_1.dat};
            } 
          \end{semilogyaxis}
        \end{tikzpicture}
    \end{center}
\end{frame}

\end{document}

Связанный контент