Como traçar marca em cada enésimo ponto?

Como traçar marca em cada enésimo ponto?

Eu tenho um longo arquivo de dados CSV:

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

Eu uso pgfplotspara traçar todas as linhas. Também quero adicionar formas de marca. Mas o problema é que os dados são muito densos e tenho um espaço limitado, por isso as marcas ficam juntas.

Tentei:

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

Mas também ignorou os pontos de dados.

Quero ter uma linha suave, mas apenas algumas marcas. Como eu posso fazer isso?

Responder1

Você precisa usar mark repeata tecla para repetir marcas em intervalos frequentes. mark phasedirá em que ponto as marcas devem começar. Por exemplo,

make repeat = r,
mark phase = p

colocará a marca primeiro no pponto e depois no p+rponto e depois p+2rno ponto etc. Um exemplo do 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}

insira a descrição da imagem aqui

informação relacionada