47

matlabでは、サブプロットの周囲に膨大な量のスペースが無駄になります。たとえば、この例では次のようになります。

t = 0:0.001:2*pi+0.001;
figure(2);
for i = 1 : 25;
    subplot(5,5,i);
    plot(t, sin(i*t));
    axis off
end

サブプロットの無駄な空白の例

図のスペースの50%以上が「空白」として無駄になっています。その空白スペースを縮小したいのですが、そのメカニズムを特定できませんでした。考え?

4

3 に答える 3

49

ファイル交換のsubaxis関数を使用すると、サブプロットのマージンを指定できます。

使用例:

t = 0:0.001:2*pi+0.001;
figure(2);
for i = 1 : 25;
    subaxis(5,5,i, 'Spacing', 0.03, 'Padding', 0, 'Margin', 0);
    plot(t, sin(i*t));
    axis tight
    axis off
end

ここに画像の説明を入力してください

于 2011-07-13T21:34:29.450 に答える
7

を使用して、自分で(またはプログラムで)配置できます。

subplot('Position',[left bottom width height]);

デフォルトでは、座標は正規化されています。したがって、[0.1 0.1 0.5 0.5]の位置は、左下隅から10%の位置から始まり、図の幅の半分に等しい幅と、図の高さの半分に等しい高さを持ちます。

マージンとパディングの組み込みソリューションについては、受け入れられている回答を参照してください。

于 2011-07-13T20:40:25.977 に答える
6

http://UndocumentedMatlab.com/blog/axes-looseinset-property/で説明されているように、 hiddenaxesLooseInsetsプロパティのデフォルト値を減らしてみてください。

例えば:

set(gca, 'LooseInset', get(gca,'TightInset'))
于 2011-07-14T19:16:01.033 に答える