¿Cómo trazar una marca en cada enésimo punto?

¿Cómo trazar una marca en cada enésimo punto?

Tengo un archivo de datos CSV largo:

x,y1,y2...
1,v1,v1...
2,v2,v2...
....

Yo suelo pgfplotstrazar todas las líneas. También quiero agregar formas de marcas. Pero el problema es que los datos son demasiado densos y tengo un espacio limitado, por lo que las marcas se pegan.

Lo intenté:

 \addplot[blue, thin, mark=square, each nth point=20] table ...

Pero también se saltó los puntos de datos.

Quiero tener una línea suave, pero sólo unas pocas marcas. ¿Cómo puedo hacer eso?

Respuesta1

Debe utilizar mark repeatla clave para repetir las marcas a intervalos frecuentes. mark phasele dirá en qué punto deben comenzar las marcas. Por ejemplo,

make repeat = r,
mark phase = p

pondrá la marca primero en pel punto y luego en p+rel punto y luego en p+2rel punto, etc. Un ejemplo del manual

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
  \begin{tikzpicture}
\begin{axis}[title=Without \texttt{mark repeat}]
\addplot+[scatter,samples=100] {sin(deg(x))};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[title= With \texttt{mark repeat=5,mark phase=7}]
\addplot+[scatter,samples=100,
mark repeat=5,mark phase=7]
{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada