使用gnuplot文件中保存的点绘制不同的线

使用gnuplot文件中保存的点绘制不同的线,gnuplot,Gnuplot,我有一个文本文件,如下所示: 0.0120363241833/ 200497.697562 0.0152237370833/ 200496.992937 0.0181834776333/ 200496.122072 0.0211432181833/ 200495.303516 0.0241029587333/ 200494.602714 0.0270626992833/ 200493.73507 0.030022439

我有一个文本文件,如下所示:

0.0120363241833/ 200497.697562   
0.0152237370833/    200496.992937    
0.0181834776333/    200496.122072    
0.0211432181833/    200495.303516    
0.0241029587333/    200494.602714    
0.0270626992833/    200493.73507     
0.0300224398333/    200493.033097    
0.0332098527333/    200492.167099    
0.0361695932833/    200491.352509    
0.0391293338333/    200490.603494    
0.0420890743833/    200489.842834    
0.0450488149333/    200489.147658
所以我想读两个连续的点,画出穿过它们的线。 我所做的是:

do for [i=1:12]{

  t_0= awk 'NR==i {print $1}' "../graph1.txt"

  t_1= awk 'NR==$1+i {print $1}' "../graph1.txt"

  p_0= awk 'NR==i {print $2}' "../graph1.txt"

  p_1= awk 'NR==i+1 {print $2}' "../graph1.txt"


  m= (p_1-p_0)/(t_0-t_1)

  f(x) = m*(x-t_0)+p_0

  plot f(x)

}   

但它不起作用,有人能给我建议吗?

如果您去掉
/
并每隔两行添加一个空行:

0.0120363241833 200497.697562
0.0152237370833 200496.992937

0.0181834776333 200496.122072
0.0211432181833 200495.303516

0.0241029587333 200494.602714
0.0270626992833 200493.73507

...
然后是一个简单的

plot 'data.dat' w l

我会做你想做的

这里不需要循环。您可以使用
awk
将数据拆分为成对的点,并将
与行一起使用,如下所示:

plot '<awk -F/ ''NR%2{print ""}{print $1,$2}'' ../graph1.txt' with lines
这里,awk命令末尾的
1
告诉awk执行默认操作,即打印整行

无论哪种方式,您都可以得到:

set datafile separator '/'
plot '<awk ''NR%2{print ""}1'' ../graph1.txt' with lines