세 번째 변수를 기반으로 pgfplots 테이블의 행 건너뛰기

세 번째 변수를 기반으로 pgfplots 테이블의 행 건너뛰기

아래 데이터가 있습니다. 편향(마지막 열)이 0인 모든 행에 대한 선과 편향이 1인 모든 행에 대한 또 다른 선이 있도록 그래프를 작성하고 싶습니다. 나는 바이어스=0을 기준으로 행을 건너뛰고 바이어스=1일 때 행을 건너뛰는 또 다른 \addplot을 추가하면 이 작업을 수행할 수 있다고 생각했습니다.

그러나 pgfplots 매뉴얼의 섹션 4.21에서는 세 번째 변수가 아닌 표시된 점의 값을 기반으로 행을 건너뛸 수 있다는 것만 볼 수 있습니다.

세 번째 변수의 값을 기준으로 포인트를 건너뛰는 방법이 있나요? 아니면 입력 파일의 형식을 변경하지 않고 이를 수행하는 더 좋은 방법이 있습니까?

감사해요.

\documentclass{article}
\usepackage{pgfplotstable}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
xlabel=Period,
ylabel=ATE]
\addplot table[x=period,y=b] {
period b se z pvalue ll ul es bias
-4 -13.068966 4.7957403 -2.7251195 .00642782 -22.468444 -3.6694872 -.50936721 0
-3 -13.576271 2.9311518 -4.6317189 3.626e-06 -19.321223 -7.8313192 -.44067295 0
-2 -14.932203 2.8516346 -5.2363664 1.638e-07 -20.521304 -9.3431023 -.51395893 0
-1 -14.754237 2.3839111 -6.1890887 6.051e-10 -19.426617 -10.081857 -.52921471 0
0 -13.177966 2.9938464 -4.4016841 .00001074 -19.045797 -7.310135 -.47328062 0
0 -.83020764 2.8927267 -.2869983 .77411362 -6.4998477 4.8394324 -.47328062 1
1 -10.341667 3.0767608 -3.3612189 .00077599 -16.372007 -4.3113263 -.39240307 0
1 -1.6596195 2.7877028 -.59533588 .55161898 -7.1234166 3.8041776 -.39240307 1
};
\end{axis}
\end{tikzpicture}

\end{document}

답변1

x exprx 좌표를 선택하는 데 사용할 수 있습니다 .

\documentclass{article}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel=Period,
ylabel=ATE]

\pgfplotstableread{
period b se z pvalue ll ul es bias
-4 -13.068966 4.7957403 -2.7251195 .00642782 -22.468444 -3.6694872 -.50936721 0
-3 -13.576271 2.9311518 -4.6317189 3.626e-06 -19.321223 -7.8313192 -.44067295 0
-2 -14.932203 2.8516346 -5.2363664 1.638e-07 -20.521304 -9.3431023 -.51395893 0
-1 -14.754237 2.3839111 -6.1890887 6.051e-10 -19.426617 -10.081857 -.52921471 0
0 -13.177966 2.9938464 -4.4016841 .00001074 -19.045797 -7.310135 -.47328062 0
0 -.83020764 2.8927267 -.2869983 .77411362 -6.4998477 4.8394324 -.47328062 1
1 -10.341667 3.0767608 -3.3612189 .00077599 -16.372007 -4.3113263 -.39240307 0
1 -1.6596195 2.7877028 -.59533588 .55161898 -7.1234166 3.8041776 -.39240307 1
}\datatable

\addplot
  table[x expr={\thisrow{bias}==1?nan:\thisrow{period}},y=b]\datatable;
\addplot
  table[x expr={\thisrow{bias}==0?nan:\thisrow{period}},y=b]\datatable;
\end{axis}
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보