Frage

Wenn Sie die Dinge in Matlab plotten, die zuletzt gezeichneten Daten Serie ist oben auf gelegt, was auch immer schon da ist. Zum Beispiel:

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

Hier ist die rote Linie auf der blauen Linie gezeigt (wo sie sich schneiden). Gibt es eine Möglichkeit, „wie tief“ eine Linie gezogen, um festgelegt ist, so dass Sie die Dinge können plotten unter , was schon da ist?

War es hilfreich?

Lösung

Mit dem uistack Befehl. Zum Beispiel:

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

wird plotten zwei Zeilen mit der roten Linie oben auf der blauen Linie aufgetragen. Wenn Sie dann tun:

uistack(h1);

die blaue Linie wird nach vorne gebracht werden.

Andere Tipps

Sie können auch dies erreichen, indem die Reihenfolge der Kinder Vektor der aktuellen Achsen einstellen. Wenn Sie wie folgt vor:

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

Sie werden sehen, dass h ein Vektor ist, die h1 und h2 enthält. Die graphische Stapelreihenfolge durch die Reihenfolge der Griffe in h dargestellt. In diesem Beispiel wird die Stapelreihenfolge umkehren Sie tun können:

h = flipud(h);
set(gca, 'Children', h);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top