Usando \addplot+ y \foreach en pgfplot

Usando \addplot+ y \foreach en pgfplot

Tengo cuatro archivos de texto con 21 columnas cada uno y quiero trazar, para cada archivo, la primera columna como x y luego las 20 columnas siguientes como y. Para cada archivo, júntelo todo en el mismo gráfico. Básicamente son 20 réplicas en 4 condiciones diferentes.

Tengo el siguiente código usando \foreach, pero me gustaría hacerlo más limpio usando \addplot+en lugar \addplotdel argumento fill. Si lo uso \addplot+dentro del \foreachbucle, entonces cada réplica tiene su propio color y no es realmente lo que quiero.

Para ser claros, el siguiente código hace lo que quiero, pero me gustaría conocer soluciones para hacerlo mejor.

\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}

Respuesta1

  • falta tu ejemplo\usepackage{pgfplots}
  • No es necesario draw=color, solo colores suficiente.
  • Comopercutirdicho, un foreachbucle debería ser suficiente
  • Dijiste que tenías 21 columnas, por lo que el bucle debería ejecutarse hasta ese valor.
  • \addplot[options]Sólo debe ejecutar el options, por lo que puede omitir el mark=none. De lo contrario puede especificar\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}

información relacionada