pgfplot에서 \addplot+ 및 \foreach 사용

pgfplot에서 \addplot+ 및 \foreach 사용

각 21개의 열이 있는 4개의 텍스트 파일이 있고 각 파일에 대해 첫 번째 열을 x로 표시하고 다음 20개의 열을 y로 표시하려고 합니다. 각 파일에 대해 모두 동일한 그래프에 표시합니다. 기본적으로 4가지 다른 조건에서 20번 반복합니다.

을 사용하는 다음 코드가 있지만 채우기 인수를 사용하는 대신 을 \foreach사용하여 더 깔끔하게 만들고 싶습니다 . 루프 내에서 사용하면 각 복제에는 고유한 색상이 있으며 실제로는 내가 원하는 것이 아닙니다.\addplot+\addplot\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}

관련 정보