web-dev-qa-db-ja.com

Matlabの図の行の順序を変更するにはどうすればよいですか?

.figファイルに3つの曲線のプロットがある場合、別のプロットを追加したい(hold allplot)、ただし、既存の曲線の1つ後ろを配置します(つまり、最後の元の曲線が前景の曲線のままであることを確認します)。これは、プロットデータを抽出して再プロットすることなく達成できますか?

27
Tobias Kienzler

一番上の行のハンドルがわかっている場合(たとえば、h = plot(...)を呼び出したため、 uistack を使用できます)

uistack(h,'top')

または、現在の軸の子の順序を直接操作できます。次は、最後から2番目の曲線を一番上に置きます。

chH = get(gca,'Children')
set(gca,'Children',[chH(end);chH(1:end-1)])
44
Jonas

'Children'プロパティを使用して@Jonasによって指定された解像度は、指定された形式では機能しません。次のように変更する必要があります。

chH = get(gca,'Children')
set(gca,'Children',flipud(chH))

画像に凡例がある場合、get(gca,...)set(gca,...)のペアはエラーになります:「setを使用してエラーが発生しました。その場合、FigureのGUI選択ツールを使用してAxesオブジェクトを選択し、凡例ではなく、必要に応じてプロットのみで作業を取得および設定します。 setを呼び出した後、legend(...)を呼び出して凡例を更新する必要があります。再注文する必要がある5つのプロットがありました。順序がわからない場合は、一度に2つのプロットを並べ替え、凡例を更新して、それが希望する順序かどうかを確認します

1
Hazem