绘制具有两个条件的数据

绘制具有两个条件的数据

我可以根据一列中的值绘制数据,如下所示:

\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents}{data.csv}
a,b,c,d
0,0,1,2
2,2,1,2
3,-3,1,3
2,1,2,4
\end{filecontents}
\begin{document}
\begin{tikzpicture}
  \begin{axis}
  \addplot+[only marks]
    table[x=a, y=b, col sep=comma,
      restrict expr to domain={\thisrow{c}}{1:1}]{data.csv};
  \end{axis}
\end{tikzpicture}
\end{document}

是否可以应用两个条件?例如,我想绘制 c = 1 中的值和 d = 2 中的值的数据,而不绘制仅适用一个条件的数据。

答案1

您可以使用x expr来应用条件。如果结果不为真,则将 x 值设置为nan

\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents}{data.csv}
a,b,c,d
0,0,1,2
2,2,1,2
3,-3,1,3
2,1,2,4
\end{filecontents}
\begin{document}
\begin{tikzpicture}
  \begin{axis}
  \addplot+[only marks]
    table[
      x expr={and(\thisrow{c}==1,\thisrow{d}==2)==1?\thisrow{a}:nan},
      y=b,
      col sep=comma,
      ]{data.csv};
  \end{axis}
\end{tikzpicture}
\end{document}

结果:

在此处输入图片描述

相关内容