我有四个文本文件,每个文件有 21 列,我想为每个文件绘制第一列作为 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}