将点与 csv 文件中列的坐标连接起来

将点与 csv 文件中列的坐标连接起来

我有一个 csv 文件,其中包含四列 x1、y1、x2 和 y2。我需要使用 为表格的每一行绘制连接点 (x1,y1) 和 (x2,y2) 的线段\addplot。在下面的代码中,file1.csv 包含以下数据:

x1 y1 x2 y2
3,4,1,5
4,2,1,0
3,3,6,5
...
...

我有以下代码和\addplot需要完成的部分。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx,amsmath,amsfonts}
\usepackage{amsthm,graphicx,tikz,float}
\usepackage{enumerate,array}
\usepackage{pgfplots,color}
\begin{tikzpicture}
\begin{axis}[
    title={Segments},
    xlabel={X},
    ylabel={Y},
    xmin=0, xmax=10,
    ymin=0, ymax=10,
]

\addplot[] table {file1.csv};
    
\end{axis}
\end{tikzpicture}
\end{document}

答案1

新年快乐!

看看以下 MWE (最小工作示例) 是否适合您:

\RequirePackage{filecontents}
    \begin{filecontents*}{file1.cvs}
x1 y1 x2 y2
3  4  1  5
4  2  1  0
3  3  6  5
    \end{filecontents*}

\documentclass[margin=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

 \begin{document}
    \begin{tikzpicture}
\begin{axis}[
    grid,
    xlabel = {X},
    ylabel = {Y},
    ymin=0, ymax=5,
    enlargelimits = 0.1,
            ]
\addplot    table   [x=x1, y=y1]   {file1.cvs};
\addplot    table   [x=x2, y=y2]   {file1.cvs};
\end{axis}
    \end{tikzpicture}
\end{document}

如您所见,file1.cvs我添加了 MWE,并从中删除了所有逗号。

在此处输入图片描述

编辑:
抱歉,在我第一次尝试帮助您时,我显然误解了您的问题。正如我在评论中指出的那样,按照您喜欢的方式使用您的表格超出了我的知识范围,但是,如果可以像在下一个 MWE 中所做的那样重新组织您的表格,那么您将得到以下结果:

在此处输入图片描述

\RequirePackage{filecontents}
    \begin{filecontents*}{file1.cvs}
3  4  
1  5
 
4  2  
1  0 

3  3  
6  5
    \end{filecontents*}

\documentclass[margin=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

 \begin{document}
    \begin{tikzpicture}
\begin{axis}[
    grid,
    xlabel = {X},
    ylabel = {Y},
    ymin=0, ymax=5,
    enlargelimits = 0.1,
            ]
\addplot    table   {file1.cvs};
\end{axis}
    \end{tikzpicture}
\end{document}

相关内容