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}

関連情報