Pregunta

Cuando trazas cosas en Matlab, la serie de datos trazados más recientemente se coloca encima de lo que ya está allí. Por ejemplo:

figure; hold on
plot(sin(linspace(0,pi)),'linewidth',4,'color',[0 0 1])
plot(cos(linspace(0,pi)),'linewidth',4,'color',[1 0 0])

Aquí, la línea roja se muestra en la parte superior de la línea azul (donde se intersecan). ¿Hay alguna forma de establecer " cuán profundo " se dibuja una línea, para que pueda trazar las cosas debajo de lo que ya existe.

¿Fue útil?

Solución

Usa el comando uistack . Por ejemplo:

h1 = plot(1:10, 'b');
hold on;
h2 = plot(1:10, 'r');

trazará dos líneas con la línea roja trazada en la parte superior de la línea azul. Si luego haces:

uistack(h1);

la línea azul será traída al frente.

Otros consejos

También puede lograr esto estableciendo el orden del vector secundario de los ejes actuales. Si haces lo siguiente:

figure; hold on
h1 = plot(sin(linspace(0,pi)),'linewidth',4,'color',[0 0 1]);
h2 = plot(cos(linspace(0,pi)),'linewidth',4,'color',[1 0 0]);
h = get(gca, 'Children');

verá que h es un vector que contiene h1 y h2. El orden de apilamiento gráfico se representa por el orden de los controladores en h. En este ejemplo, para revertir el orden de apilamiento podría hacer:

h = flipud(h);
set(gca, 'Children', h);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top