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 colorlc
一样不支持变量
关键字。然而,我们可以用一个小“把戏”来做到这一点。其思想是首先确定输入文件中的行数,然后首先进行辅助绘图(每行通过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)