Function GNUPLOT:用向量连接不同系列的点

Function GNUPLOT:用向量连接不同系列的点,function,vector,gnuplot,points,Function,Vector,Gnuplot,Points,我有一个包含X和Y两列数据的文件。有一些块,它们由一个空行分隔。我想使用向量将每个块中的点(由它们在文件中的坐标x和y给出)连接起来。我正在尝试使用以下功能: prev_x = NaN prev_y = NaN dx(x) = (x_delta = x-prev_x, prev_x = ($0 > 0 ? x : 1/0), x_delta) dy(y) = (y_delta = y-prev_y, prev_y = ($0 > 0 ? y : 1/0), y_delta) 这是我

我有一个包含X和Y两列数据的文件。有一些块,它们由一个空行分隔。我想使用向量将每个块中的点(由它们在文件中的坐标x和y给出)连接起来。我正在尝试使用以下功能:

prev_x = NaN
prev_y = NaN
dx(x) = (x_delta = x-prev_x, prev_x = ($0 > 0 ? x : 1/0), x_delta)
dy(y) = (y_delta = y-prev_y, prev_y = ($0 > 0 ? y : 1/0), y_delta)
这是我从(第一个答案)中摘取的。绘图命令将是[i=0:5]“Field_lines.txt”的
plot,每个::i::i u(prev_x):(prev_y):(dx($1)):(dy($2))和向量
。输出是 问题是点(0,0)被包括在内,即使它不在文件中。我想我不明白函数
dx
dy
到底做了什么,以及它们如何与选项一起使用
(prev\u x):(prev\u y):(dx($1)):(dy($2))
,所以对这一点的解释将帮助我解决这个问题。 这是文件:

#1
0   5   
0   4   
0   3   
0.4 2   
0.8 1   
0.8 1   

#2
2   5
2   4
2   3
2   2
2   1
2   0

#3
4   5
4.2 4
4.5 3
4.6 2
4.7 1
4.7 0

#4
7   5
7.2 4
7.5 3
7.9 2
7.9 1
7.9 0

#5 
9   5
9   4
9.2 3
9.5 2
9.5 1
9.5 0

#6
11  7
12  6
13  5
13.3    4
13.5    3
13.5    2
13.6    1
14  0

谢谢

我不完全确定真正的问题是什么,但我认为你不能依靠
中的列使用
语句从左到右进行计算,你在
dx
dy
中的检查
$0>0
在我看来有些太晚了

我通常把所有的赋值和条件放在第一列,这在你的情况下也很好:

set offsets 1,1,1,1
unset key
prev_x = prev_y = 1

plot for [i=0:5] 'Field_lines.txt' every :::i::i \
    u (x_delta = prev_x-$1, prev_x=$1, y_delta=prev_y-$2, prev_y=$2, ($0 == 0 ? 1/0 : prev_x)):(prev_y):(x_delta):(y_delta) with vectors backhead
此外,要从第j行到下一行中的点绘制向量,必须反转
x_delta
的定义,并使用
backhead
以正确的方向绘制向量