从 csv 导入的标记点

从 csv 导入的标记点

我有一个 csv 文件,包含两列,分别对应于点云的 x 和 y 坐标。由于可以通过以下方式在 tikzpicture 环境中标记点

\coordinate (1) at (0,0); # from now one simply has to write (1) instead of (0,0)

我想知道是否可以从 csv 文件导入点并使用文件中相应的行号自动标记它们。

答案1

这里我使用readarray来吸收和组合数据。我将坐标标记为R\i其中\i是本地行号。

\documentclass[border=3mm,tikz]{standalone}
\usepackage{readarray,filecontents}
\begin{filecontents*}{mydata}
-4,16
-3,9
-2,4
-1,1
-.5,.25
0, 0
.5,.25
1, 1
2, 4
3, 9
4,16
\end{filecontents*}
\begin{document}
\readarraysepchar{,}
\readdef{mydata}\myrecorddata
\readarray\myrecorddata\xypts[-,2]
\begin{tikzpicture}
\def\thedamnedline{}% INITIALIZE
\foreach\i in {1, ..., \xyptsROWS}{
  \coordinate[label=\textcolor{red}{R\i}](R\i) at (\xypts[\i,1],\xypts[\i,2]);% DEFINE/LABEL
  \fill[red] (R\i) circle (2pt);% ADD CIRCLE AT EACH COORDINATE
  \ifnum\i>1\relax\xdef\thedamnedline{\thedamnedline -- }\fi% COMPOSE INTERCOORDINATE LINKS
  \xdef\thedamnedline{\thedamnedline (R\i) }% COMPOSE COORDINATES SEQUENTIALLY FOR LINE
}
\draw\thedamnedline;% DRAW \thedamnedline (PREVIOUSLY COMPOSED)
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容