在 pgfplots 中标记最后一个数据点

在 pgfplots 中标记最后一个数据点

我如何告诉 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}

在此处输入图片描述

相关内容