PGFPlots: 축별로 특정 표시를 선택적으로 자르는 방법은 무엇입니까?

PGFPlots: 축별로 특정 표시를 선택적으로 자르는 방법은 무엇입니까?

이 MWE에서는 빨간색 다이아몬드 표시를 그대로 유지하면서 축을 기준으로 노란색 사각형 표시를 잘라야 합니다.

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            xmin=0, xmax=1,
            ymin=0, ymax=1,
            domain=0:1,
            every axis plot post/.append style={
                line width=2pt,
            }
        ]
            \addplot [ mark=square*, mark size=4pt,
            mark options={fill=yellow, line width = 0.5pt}, samples = 3 ] {x};
            \addplot [ only marks,  mark=diamond*, mark size=5pt,
            mark options={fill=red, line width = 0.5pt}, samples = 2 ] {x};
        \end{axis}
    \end{tikzpicture}
\end{document}

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


부록

clip marker paths레이어를 사용할 때는 옵션이 작동하지 않습니다. 이 경우 어떻게 해결할 수 있나요?

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest,
layers/my layer set/.define layer set={bg,main,fg}{},
set layers=my layer set,
mark layer=like plot}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            xmin=0, xmax=1,
            ymin=0, ymax=1,
            domain=0:1,
            every axis plot post/.append style={
                line width=2pt,
            }
        ]
            \addplot [ mark=square*, mark size=4pt,
            mark options={fill=yellow, line width = 0.5pt}, samples = 3, clip marker paths, on layer = bg ] {x};
            \addplot [ only marks,  mark=diamond*, mark size=5pt,
            mark options={fill=red, line width = 0.5pt}, samples = 2, on layer = fg ] {x};
        \end{axis}
    \end{tikzpicture}
\end{document}

답변1

clip marker paths노란색 마커를 사용하여 플롯에 옵션을 추가합니다 .

편집하다:지적했듯이 레이어를 사용할 때는 작동하지 않습니다. 그러나 clip mode=individual대신 사용하는 것이 효과가 있는 것 같습니다.

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

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest,
layers/my layer set/.define layer set={bg,main,fg}{},
set layers=my layer set,
mark layer=like plot}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            xmin=0, xmax=1,
            ymin=0, ymax=1,
            domain=0:1,
            every axis plot post/.append style={
                line width=2pt,
            }
        ]
            \addplot [ mark=square*, mark size=4pt,
            mark options={fill=yellow, line width = 0.5pt}, samples = 3, on layer = bg,
            clip mode=individual % <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
            ] {x};
            \addplot [ only marks,  mark=diamond*, mark size=5pt,
            mark options={fill=red, line width = 0.5pt}, samples = 2, on layer = fg ] {x};
        \end{axis}
    \end{tikzpicture}
\end{document}

관련 정보