gnuplot:如何用可变线宽绘图?

时间:2014-06-30 21:47:43

标签: vector gnuplot

我想制作一些情节问题。

假设我有一个包含5列的数据文件,如:x,y,x + dx,y + dy,a。

我想绘制一个箭头厚度与a成比例的矢量场,但我不知道该怎么做。假设我以一种它属于[0:100]的方式缩放a,我是否必须为每个区间[0:5],[5:10]等定义一个线型......? 我已尝试使用列功能,但它无法正常工作。

  

C1 = 12

     

绘制'数据'你3:4:($ 5- $ 3):( $ 6- $ 4)w vector lw column(c1)

(注意:一个术语在十二列中)

我尝试了这个命令:

  

情节'数据'你3:4:($ 5- $ 3):( $ 6- $ 4):12 w矢量nohead arrowstyle变量

1 个答案:

答案 0 :(得分:2)

使用变量箭头样式的最后一种方法应该可以正常工作。请考虑以下示例:

set samples 11
set xrange [0:100]
set for [i=1:101] style arrow i lw i/10.0 nohead
unset key
plot '+' using 1:1:(2):(10):($1+1) with vectors arrowstyle variable

这里我定义了100种箭头样式,它们的线宽不同。版本4.6.5的结果是

enter image description here

在你的情况下,使用

就足够了
set for [i=1:101] style arrow i lw i/10.0 nohead
plot 'data' u 3:4:($5-$3):($6-$4):12 w vectors nohead arrowstyle variable

当然,您必须确保第12列位于[1:101]范围内。您还可以使用stats确定第12列中值的限制,并编写一个函数map(x),将此列的值映射到所需的范围[1:101]