How to avoid objects from function "arrow3" to be plotted on top?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Orjan Kristensen
el 6 de Dic. de 2023
Comentada: Orjan Kristensen
el 12 de Dic. de 2023
Hi! When using the Matlab function "arrow3", the resulting objects always come on top, no mather what I do. In the script below I want the blue and green marker on top of the red arrows. Is there anything I can do to achieve this? Thank you!
x1 = 0; x2 = 2; xs = 0.2;
y1 = 0; y2 = 6; ys = 0.5;
[x,y] = meshgrid(x1:xs:x2,y1:ys:y2);
dy = y; dx = ones(size(dy));
L = sqrt(1+dy.^2);
dy = dy./L; dx = dx./L;
p1 = [x(:) y(:)];
figure(1); clf;
arrow3(p1,p1+0.001*[dx(:),dy(:)],'r',0.5,2);
hold on
plot(1,2,'b.','Markersize',100)
plot(1,3,'g.','Markersize',100)
h=get(gca,'Children');
set(gca,'Children',flipud(h))
2 comentarios
Respuesta aceptada
Yash
el 12 de Dic. de 2023
Hi Orjan,
I understand that you want to bring the blue and green marker on top of the red arrows. To do so you must set the “SortMethod” property of the “axes” from “depth” to “childorder”. This ensures that an object which is near the beginning of the “Children” list always covers an object which is later in the “Children” list.
Here is the updated code:
x1 = 0; x2 = 2; xs = 0.2;
y1 = 0; y2 = 6; ys = 0.5;
[x,y] = meshgrid(x1:xs:x2,y1:ys:y2);
dy = y; dx = ones(size(dy));
L = sqrt(1+dy.^2);
dy = dy./L; dx = dx./L;
p1 = [x(:) y(:)];
figure(1); clf;
arrow3(p1,p1+0.001*[dx(:),dy(:)],'r',0.5,2);
hold on
plot(1,2,'b.','Markersize',100)
plot(1,3,'g.','Markersize',100)
ax = gca;
ax.SortMethod = "childorder";
Refer here for more information:
- https://blogs.mathworks.com/graphics/2014/11/04/sortmethod/
- https://in.mathworks.com/matlabcentral/answers/30212-how-to-bring-a-plot-to-the-front-or-back-among-multiple-plots
I hope this helps!
Más respuestas (0)
Ver también
Categorías
Más información sobre Lighting, Transparency, and Shading en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!