Вопрос

Когда вы рисуете что-то в Matlab, последний построенный ряд данных помещается поверх того, что уже есть.Например:

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])

Здесь красная линия показана поверх синей линии (в месте их пересечения).Есть ли способ установить, «насколько глубоко» рисуется линия, чтобы вы могли строить графики? под что уже есть?

Это было полезно?

Решение

Использовать стек команда.Например:

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

построит две линии, красная линия будет нанесена поверх синей линии.Если вы затем сделаете:

uistack(h1);

синяя линия будет вынесена вперед.

Другие советы

Вы также можете сделать это, установив порядок дочерних векторов текущих осей.Если вы сделаете следующее:

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');

вы увидите, что h — это вектор, содержащий h1 и h2.Графический порядок наложения представлен порядком дескрипторов в h.В этом примере, чтобы изменить порядок наложения, вы можете сделать:

h = flipud(h);
set(gca, 'Children', h);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top