7

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

ここでは、赤い線が青い線の上 (交差する場所) に表示されています。すでにあるものの下に物事をプロットできるように、線が描かれる「深さ」を設定する方法はありますか?

4

2 に答える 2

20

uistackコマンドを使用します。例えば:

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

は、青い線の上に赤い線がプロットされた 2 つの線をプロットします。次に行う場合:

uistack(h1);

青い線が前面に表示されます。

于 2008-10-16T06:38:50.657 に答える
4

これは、現在の軸の子ベクトルの順序を設定することによっても実行できます。次の場合:

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);
于 2008-10-16T08:51:39.577 に答える