如何使用文件中的部分数据向 tikz 添加绘图

如何使用文件中的部分数据向 tikz 添加绘图

我有一个包含要绘制的点的文件。我想绘制这些点,然后用不同的颜色在最后一个点和第一个点之间绘制一条连接线。这是我现在拥有的代码片段,实际上数据位于单独的文件中。

\documentclass{article}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents*}{data.csv}
0 0
0 0.75
-0.3 2.2
1 1.9
1 1
1.3 0
2.2 0.2
2 1
2.1 2.3
\end{filecontents*}

\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [mark=o, mark size=2pt, black, thick] file {data.csv};
\end{axis}
\end{tikzpicture}
\end{document}

由此得到以下图片:

图原

我想要得到以下信息:

添加线条的图形

有没有办法在代码中实现这一点,而无需添加仅包含第一个点和最后一个点的另一个文件?

答案1

skip coords between index通过在图表中添加第二个绘图,可以轻松完成此操作:

\pgfplotstablegetrowsof{data.csv}\pgfmathsetmacro\idxend{\pgfmathresult-1}
\addplot [mark=none, mark size=2pt, red, thick, skip coords between index={1}{\idxend}] file {data.csv};

阴谋

完整代码:

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{filecontents}{data.csv}
0 0
0 0.75
-0.3 2.2
1 1.9
1 1
1.3 0
2.2 0.2
2 1
2.1 2.3
\end{filecontents}

\begin{document}

\begin{tikzpicture}
    \begin{axis}
        \addplot[mark=o, mark size=2pt, black, thick] file {data.csv};
        \pgfplotstablegetrowsof{data.csv}\pgfmathsetmacro\idxend{\pgfmathresult-1}
        \addplot[mark=none, mark size=2pt, red, thick, skip coords between index={1}{\idxend}] file {data.csv};
    \end{axis}
\end{tikzpicture}

\end{document}

相关内容