如何使用 pgfplots 绘制来自多个过滤器的数据

如何使用 pgfplots 绘制来自多个过滤器的数据

我正在寻找一种方法来将多个过滤器应用于数据输入并在一个轴环境中绘制每个过滤器的结果。我发现了以下内容问题它应用了一个过滤器,但在轴环境中使用该过滤器。在 tikz 图片中拥有多个轴环境会导致奇怪的结果。知道如何为多个过滤器/图实现这一点吗?

编辑:这里有一个例子:

P X Y
0 1 0.882352941176
0 2 11.0
0 3 11.0
0 4 6.0
0 5 3.0
0 6 1.0625
0 7 0.689655172414
0 8 0.541125541126
0 9 0.519576719577

1 1 1.13333333333
1 2 7.0
1 3 4.0
1 4 2.66666666667
1 5 1.2
1 6 0.594594594595
1 7 0.447368421053
1 8 0.423202614379
1 9 0.410808614384

我想绘制一个参数化图,对于每个,P我想创建一个线图,其中包含相应的和列中的X和值。我想对每个进行过滤,然后在一个轴上绘制所有结果。很抱歉,在被要求后才提供此信息。YXYP

答案1

您可以使用以下方法当条形图基于符号值时,是否可以更改单个条形的颜色?过滤每个\addplot命令中的数据:

\documentclass{article}
\usepackage{pgfplots}
\usepackage{filecontents}

\begin{filecontents}{data.dat}
P X Y
0 1 0.882352941176
0 2 11.0
0 3 11.0
0 4 6.0
0 5 3.0
0 6 1.0625
0 7 0.689655172414
0 8 0.541125541126
0 9 0.519576719577

1 1 1.13333333333
1 2 7.0
1 3 4.0
1 4 2.66666666667
1 5 1.2
1 6 0.594594594595
1 7 0.447368421053
1 8 0.423202614379
1 9 0.410808614384       
\end{filecontents}

\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{document}
\begin{tikzpicture}
\begin{axis}
\addplot [ultra thick, black, discard if not={P}{0}] table [x=X, y=Y] {data.dat};
\addplot [ultra thick, red, discard if not={P}{1}] table [x=X, y=Y] {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容