quiver函数默认是打开AutoScale,默认'on'的,那么我们在设置AutoScaleFactor
时,默认'0.9',能得到比较好的风场效果,箭头不会突出网格(经纬度刻度网格)。也可以设置成1,2,等,这样箭头就会成倍数的变长。但是我们却不知道这个AutoScaleFactor
参数中,其实还有一个隐藏的factor=1时,1m/s的风速对应的基准标量参考长度。隐藏的这个值我也不知道matlab中如何求出,我们就直接关掉AutoScale。
我用的数据是1/4°经纬刻度网格的风速,风速约在4~6m/s之间。这时我们先要
scale=0;%相当于'AutoScale'设置为0或'off'
arrow_control1=sqrt(u2.^2+v2.^2);arrow_control1=max(arrow_control1(:));%算出最大矢量长度的风速值,可用作为基准标量参考长度。
arrow_control=1/arrow_control1*abs(lon(2)-lon(1));%与坐标轴经纬度刻度作比较,计算网格基准标量比值。
quiver(lon,lat,u2'*arrow_control,v2'*arrow_control,scale,'color','b');%u,v风速值乘网格基准标量比值。
quiver(116,24.8,10/arrow_control1*abs(lon(2)-lon(1)),0,scale,'color','b','maxheadsize',1);%这里我们设置一个10m/s风速的比例尺。
axis equal;
text(116,24.6,'10 (m/s)','fontsize',18,'fontname','times new roman');