En este MWE, necesito recortar las marcas de los cuadrados amarillos por los ejes mientras mantengo intactas las marcas de diamantes rojos.
\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}
Apéndice
clip marker paths
La opción no funciona cuando se usan capas. ¿Cómo se puede solucionar en este caso?
\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}
Respuesta1
Agrega la opción clip marker paths
a la trama haciendo los marcadores amarillos.
Editar:Como se señaló, esto no funciona cuando se usan capas. Sin embargo, usar clip mode=individual
en su lugar parece funcionar.
\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}