gnuplot-具有用户定义厚度的二维绘图

gnuplot-具有用户定义厚度的二维绘图,gnuplot,Gnuplot,我在一个文本文件sect.txt中有一组x,y,t。第一行表示x1,y1,t1,第二行表示x2,y2,t1。。。第四行(第三行为空)是x3、y3、t2,然后是x4、y4、t3。我想画一条线,它的坐标是x1,y1和x2,y2,厚度是t1。类似地,下一行具有厚度t2等的坐标x3、y3和x4、y4,持续n次。使用下面的代码,我可以在gnuplot中绘制2d线条,但无法合并厚度。有人能提些建议吗 0.0000000000000000 5.0000000000000000 5

我在一个文本文件
sect.txt
中有一组
x,y,t
。第一行表示
x1,y1,t1
,第二行表示
x2,y2,t1
。。。第四行(第三行为空)是
x3、y3、t2
,然后是
x4、y4、t3
。我想画一条线,它的坐标是
x1,y1
x2,y2
,厚度是
t1
。类似地,下一行具有厚度
t2
等的坐标
x3、y3
x4、y4
,持续n次。使用下面的代码,我可以在gnuplot中绘制2d线条,但无法合并厚度。有人能提些建议吗

   0.0000000000000000        5.0000000000000000   5  
   1084.0000000000000        5.0000000000000000   5 

   542.00000000000000        10.000000000000000   1  
   542.00000000000000        981.00000000000000   1  

   0.0000000000000000        990.50000000000000   2     
   1084.0000000000000        990.50000000000000   2  

   392.00000000000000        1017.5000000000000   4.5  
   692.00000000000000        1017.5000000000000   4.5  

   392.00000000000000        1682.5000000000000   3  
   692.00000000000000        1682.5000000000000   3  

   542.00000000000000        1035.0000000000000    2 
   542.00000000000000        1665.0000000000000    2
代码


据我所知,
lw
与line color
lc
一样不支持
变量
关键字。然而,我们可以用一个小“把戏”来做到这一点。其思想是首先确定输入文件中的行数,然后首先进行辅助绘图(每行通过
each
关键字),将线宽加载到数组中。此数组依次用于“真实”绘图:

对于您的输入,这将产生:

您好,我想用线条的厚度来表示线条。我不介意颜色是否相同。只是每条线看起来像一个矩形,它的L x B分别是线的长度和厚度
 set xlabel "X Axis (Major) "
 set ylabel"Y Axis (Minor) "
 coord="sect.txt"
 set timestamp
 set autoscale keepfix
 set view equal xy 
 plot coord using 1:2 with linespoints
fName = 'test.dat'

stat fName nooutput

#number of lines
M = int(STATS_records/2)

array lineWidths[M]

plot \
  for [i=0:M-1] fName every :::i::i u 1:(lineWidths[i+1]=$3,1/0) t '', \
  for [i=0:M-1] fName every :::i::i u 1:2 w l lw lineWidths[i+1] t sprintf("line %d", i+1)