2013-07-24 15 views
6

私は5つのサブプロットを持つ図を持っています。私は6つのサブプロットを含むsubplot(2,3、X)を宣言します。 6番目のサブプロットは空です。私は、すべてのプロットについて、伝説を6番目の空の位置に移動させます。凡例の位置を空のサブプロットに移動

どうすれば可能ですか?

答えて

3

ファイル交換からlegendflexを試してみることもありますが、それはあなたが望むことができるようです。

4

標準のmatlabを使いたい場合は、サブプロットのハンドルが必要です。その位置が必要です。次に、凡例の位置をサブプロットの位置に設定します。ドキュメントを参照する :

あなたは「場所」オプションを使用して、凡例関数に4要素の位置ベクトルを渡すことによって、凡例の位置を設定することができます。既存の凡例の位置を定義するには、set関数を使用して、4要素の位置ベクトルを 'Position'プロパティに割り当てます。あなたは、例えば、設定された機能

と場所のオプションを使用することはできません。

subplot(2,3,1), plot(1:10,2:11) 
myLegend=legend('text1') 
set(myLegend,'Units', 'pixels') 
myOldLegendPos=get(myLegend,'Position') 
hold on 
h=subplot(2,3,6) 
set(h,'Units', 'pixels') 
myPosition=get(h,'Position') 
set(myLegend,'Position',[myPosition(1) myPosition(2) myOldLegendPos(3) myOldLegendPos(4)]) 
+2

この方法は、私のために動作しませんでした。上記のコードをR2012bにコピー/ペーストすると、凡例は図のどこにも表示されません。理由は、2番目の空白のサブプロットが凡例を「カバー」するためです。凡例が見えるようにするには、 'set(h、 'Visible'、 'off')'行を最後に追加する必要があります。 –

+0

または、 'Location 'をベクトル' [Position_Right_in_pct、Position_Top_in_pct、Horizo​​ntal_Stretch Vertical_Stretch] 'に設定して' legend'を使用してください。 参照http://stackoverflow.com/a/35696869/3494126 – Ufos

関連する問題