아래 데이터가 있습니다. 편향(마지막 열)이 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 expr
x 좌표를 선택하는 데 사용할 수 있습니다 .
\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}