我如何告诉 pgfplots 仅在散点图/网格图的(第一个和)最后一个数据点上放置标记?我可以使用mark indices
选择第一个,但是如何在不知道先验的情况下选择最后一个点,会有多少个点?
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{
compat=1.16,
}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [
mesh,
mark=o,
mark indices={1},
mark size=1.5pt,
mark options={draw=red},
point meta={\thisrow{n}}
] table {trace.dat};
\end{axis}
\end{tikzpicture}
\end{document}
该文件trace.dat
看起来像这样,但更长:
x y n r
3 -1 17 27
1 -2 18 24
-1 -3 19 45
答案1
\documentclass{standalone}
\usepackage{filecontents}
\begin{filecontents*}{trace.dat}
x y n r
3 -1 17 27
1 -2 18 24
-1 -3 19 45
\end{filecontents*}
\usepackage{pgfplots}
\pgfplotsset{
compat=1.16,
}
\begin{document}
\pgfplotstableread{trace.dat}\datatable
\pgfplotstablegetrowsof{\datatable}
\pgfmathtruncatemacro{\rownum}{\pgfplotsretval}
\begin{tikzpicture}
\begin{axis}
\addplot [
mesh,
mark=o,
mark indices={1,\rownum},
mark size=1.5pt,
mark options={draw=red},
point meta={\thisrow{n}}
] table {trace.dat};
\end{axis}
\end{tikzpicture}
\end{document}