Controlling the elevation (Z value) of vector plots
1 次查看(过去 30 天)
显示 更早的评论
I'm using the quiverm() function to plot ocean surface wind vectors. Plots include multiple scalar properties as well. Those are being plotted with geoshow() which by default puts ZData for those scalar properties at zero (elevation). Example would be:
A = geoshow(updatedLat, updatedLon, div_D2, 'DisplayType', 'Texturemap', 'FaceAlpha', 1);
For visual interpretation, one of the scalar properties needs to be plotted with transparency. When that's done, MATLAB's openGL renderer has difficulty sorting the two surfaces (both at Z = 0) properly. Draw order is not factored in. The symptom is that even opaque surfaces are rendered as slightly transparent.
A possible remedy is to force separation between the two scalar property surfaces. Leave the transparent scalar property surface at Z = 0. Move the opaque surface upward by a small increment. Using the "A" surface created with above geoshow() call, you can accomplish the elevation change with
A.ZData(:) = 10;
That works to solve the transparency problem. The opaque scalar data plots properly over the top of the transparent data, and it stays opaque.
However, it leaves the accompanying vector plot behind. That's still at Z = 0.
Is it possible to control the elevation (Z value) of a guiverm() vector plot?
Thanks,
Mike
0 个评论
采纳的回答
Sean de Wolski
2015-7-8
Adjust the 'ZData' of the lines In the quiverm plot:
load coast
axesm('eqaconic','MapLatLimit',[30 60],'MapLonLimit',[-10 10])
framem; plotm(lat,long)
lat0 = [50 39.7]; lon0 = [-5.4 2.9];
u = [5 5]; v = [3 3];
% Grab line handles
q = quiverm(lat0,lon0,u,v,'r')
% Adjust first line height
q(1).ZData = q(1).ZData + 100; % (14b or greater), otherwise use set/get
更多回答(0 个)
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!