我有一个文件,其中包含不同设置(组)的测量结果,保存在一个 csv 文件中,如下所示。我想在 pgfplots 中为每个组绘制一条线并提供适当的图例。有没有办法自动执行下面显示的过程?也就是说,自动识别数据中存在哪些组并为每个组添加一条线和一个图例条目。
\documentclass{minimal}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents*}{data.csv}
group, x, y
1.10, 1, 3.5
1.10, 2, 2.2
1.10, 3, 2.1
1.10, 4, 1.5
2.12, 1, 4
2.12, 2, 3
2.12, 3, 2
2.12, 4, 1
3.21, 1, 2
3.21, 2, 2.2
3.21, 3, 2.4
3.21, 4, 2.6
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{
discard if not/.style 2 args={
x filter/.code={
\edef\tempa{\thisrow{#1}}
\edef\tempb{#2}
\ifx\tempa\tempb
\else
\def\pgfmathresult{inf}
\fi
}
}
}
\begin{axis}
\addplot table [discard if not={group}{1.10}, x=x, y=y, col sep=comma] {data.csv};
\addplot table [discard if not={group}{2.12}, x=x, y=y, col sep=comma] {data.csv};
\addplot table [discard if not={group}{3.21}, x=x, y=y, col sep=comma] {data.csv};
\legend{1,2,3}
\end{axis}
\end{tikzpicture}
\end{document}