Как поставить отметку на каждой n-й точке?

Как поставить отметку на каждой n-й точке?

У меня есть длинный CSV-файл данных:

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

Я использую pgfplotsдля построения всех линий. Я также хочу добавить формы меток. Но проблема в том, что данные слишком плотные, а у меня ограниченное пространство, поэтому метки слипаются.

Я пытался:

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

Однако он также пропустил некоторые точки данных.

Я хочу, чтобы линия была ровной, но только несколько штрихов. Как это сделать?

решение1

Вам нужно использовать mark repeatключ для повторения отметок с частыми интервалами. mark phaseподскажет, в какой точке должны начинаться отметки. Например,

make repeat = r,
mark phase = p

поставит отметку сначала в pточке th, затем в точке p+rth, затем p+2rв точке th и т.д. Пример из руководства

\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}

введите описание изображения здесь

Связанный контент