quiver arrows always appear below semitransparent layer

I am attempting to plot quiver arrows on top of a semitransparent pcolor layer. However, the arrows only appear below the semitransparent layer. It does not seem to depend on the order in which I plot the layers, and uistack has no effect. How can I get the arrows to appear on top?
figure('renderer','opengl')
imagesc(A); hold on
colormap(gray(256))
freezeColors;
% Overlay semitransparent ice speed:
h = pcolor(x,y,speed)
colormap(jet)
shading interp
set(h,'facealpha',.4)
% overlay velocity vectors:
hq = quiver(x,y,vx,vy,'k');

4 commentaires

odd i can't seem to recreate your results. i created this to test it out.
figure('renderer','opengl')
base = imread('circuit.tif');
imagesc(base);hold on
colormap(gray(256))
freezeColors;
trans = peaks;
trans = imresize(trans,size(base)/2);
trans = pcolor(20*trans);
colormap(jet)
shading interp, set(trans,'faceAlpha',.4);
[x,y] = meshgrid(1:5:272,1:5:280);
u = cos(x).*y;
v = sin(x).*y;
quiver(x,y(end:-1:1,:),u,v,'k')
does it still happen?
Chad Greene
Chad Greene le 16 Sep 2014
Modifié(e) : Chad Greene le 16 Sep 2014
Still happens. I have R2012b on a Mac OSX 10.8.5.
odd... still can't reproduce it and i jumped all way back to 2011a. I am using windows so maybe that's it? The only thing i can think next is changing the children order as changing the renderer to either zbuffer wouldn't let you have transparency?
get(gca,'Children') and set(gca,'Children',%reordered%)
Strange. Reordering children doesn't work either. Perhaps it's a Mac/OpenGL issue, and indeed, I need OpenGL for the transparency. Thanks for trying, Joseph.

Connectez-vous pour commenter.

 Réponse acceptée

Sean de Wolski
Sean de Wolski le 16 Sep 2014

0 votes

Probably an OpenGL issue but one thing you can do is use quiver3 with z set to some positive amount greater than the max of surface. Set v component to zero as well.

1 commentaire

Good thinking, Sean. This workaround is not perfect, but it definitely gets the job done.
That's set the w component that needs to be set to zero.
In Joseph's example, his quiver line can be replaced with
quiver3(x,y(end:-1:1,:),ones(size(x)),u,v,zeros(size(x)),'k')

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Vector Fields dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by