
¿Cuál es el comportamiento esperado al combinar las coordenadas de salto y cada enésimo comando en un diagrama de pgfplot? Usando el siguiente código, se esperaba que obtuviera un gráfico con puntos (250, 30) y (300, 40) y otro gráfico con puntos (250, 14) y (300, 18).
En cambio, la primera trama es correcta, mientras que la segunda produce solo el punto (300, 40), como si las dos opciones no pudieran jugar juntas.
\usepackage{filecontents}
\begin{filecontents}{results.data}
Move Size Factor
A 250 30
B 250 14
C 250 10
A 300 40
B 300 18
C 300 7
\end{filecontents}
\begin{figure}[!ht]
\centering
\pgfplotsset{tick label style={font=\small}}
\begin{tikzpicture}
\begin{axis}[ scale only axis, yticklabel style={inner sep=0pt, align=right, xshift=-0.1cm} ]
\addplot+[color=blue,only marks,mark=*,mark options=solid, mark options={scale=0.4},each nth point={3}]table[x=Size,y=Factor]{results.data};
\end{axis}
\end{tikzpicture}
\end{figure}
\begin{figure}[!ht]
\centering
\pgfplotsset{tick label style={font=\small}}
\begin{tikzpicture}
\begin{axis}[ scale only axis, yticklabel style={inner sep=0pt, align=right, xshift=-0.1cm},
,skip coords between index={0}{1}
]
\addplot+[color=blue,only marks,mark=*,mark options=solid, mark options={scale=0.4},each nth point={3}]table[x=Size,y=Factor]{results.data};
\end{axis}
\end{tikzpicture}
\end{figure}
Respuesta1
Supongo que quisiste decir "esperabas conseguir" en lugar de "esperabas". each nth point
agrega un x filter
que descarta todas menos cada enésima coordenada de entrada (como se puede escribir en el manual). Y ahora le añades otro x filter
con skip coords between index={0}{1}
el queademásfiltra el primer punto. Por lo tanto, obtienes el mismo resultado que antes excepto que falta el primer punto dibujado.
Entonces creo que tienes que escribir el tuyo propio x filter
para hacer lo que quieras. Otra posibilidad sería utilizar las funciones mark repeat
y mark phase
para lograr lo que desea. La desventaja de este enfoque es que los límites del eje determinado ( xmin
, xmax
, ymin
, ymax
) también tienen en cuenta los puntos "no mostrados". En caso de que eso te moleste, debes configurar los valores manualmente.
% used PGFPlots v1.14
\begin{filecontents}{results.data}
Move Size Factor
A 250 30
B 250 14
C 250 10
A 300 40
B 300 18
C 300 7
\end{filecontents}
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
only marks,
]
\addplot+ [
each nth point={3},
] table [x=Size,y=Factor] {results.data};
\addplot+ [
mark=square,
mark repeat={3},
] table [x=Size,y=Factor] {results.data};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
only marks,
]
\addplot+ [
each nth point={3},
skip coords between index={0}{1},
] table [x=Size,y=Factor] {results.data};
\addplot+ [
mark=square,
mark repeat={3},
mark phase=2,
] table [x=Size,y=Factor] {results.data};
\end{axis}
\end{tikzpicture}
\end{document}