在gnuplot中绘制两点之间的直线

在gnuplot中绘制两点之间的直线,plot,gnuplot,coordinates,line,Plot,Gnuplot,Coordinates,Line,我有一个csv文件,格式如下,有四列(作为MWE): 我想使用gnuplot从每个xcoord1,ycoord1到xcoord2,ycoord2绘制一条线。例如,在本例中,我将从0.1,0.2到0.4,0.3和0.5,0.3到0.7,0.5绘制两条线 怎么可能呢?一种解决方案是预处理文件并生成一个Gnuplot脚本,该脚本将使用set arrow命令。或者,也可以通过一些预处理直接绘制输入文件。诀窍是将数据文件中的每一行转换为单独的块,例如 xcoord1,ycoord1,xcoord2,yco

我有一个csv文件,格式如下,有四列(作为
MWE
):

我想使用gnuplot从每个
xcoord1,ycoord1
xcoord2,ycoord2
绘制一条线。例如,在本例中,我将从
0.1,0.2
0.4,0.3
0.5,0.3
0.7,0.5
绘制两条线


怎么可能呢?

一种解决方案是预处理文件并生成一个Gnuplot脚本,该脚本将使用
set arrow
命令。或者,也可以通过一些预处理直接绘制输入文件。诀窍是将数据文件中的每一行转换为单独的块,例如

xcoord1,ycoord1,xcoord2,ycoord2
0.1,0.2,0.4,0.3
0.5,0.3,0.7,0.5
将转换为

0.1 0.2
0.4 0.3

0.5 0.3
0.7 0.5
然后,Gnuplot将只连接一个块内的点。要实现这一点,您可以执行以下操作:

plotCmd(fname)=sprintf("<gawk -F, 'NR>1{printf \"%%s\\t%%s\\n%%s\\t%%s\\n\\n\",$1,$2,$3,$4}' %s", fname)
plot plotCmd('input.csv') w lp

plotCmd(fname)=sprintf(将线绘制为无箭头的矢量:

plot "file" using 1:2:($3-$1):($4-$2) with vectors nohead
plot "file" using 1:2:($3-$1):($4-$2) with vectors nohead