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%以上が「空白」として無駄になっています。その空白スペースを縮小したいのですが、そのメカニズムを特定できませんでした。考え?
ファイル交換の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
を使用して、自分で(またはプログラムで)配置できます。
subplot('Position',[left bottom width height]);
デフォルトでは、座標は正規化されています。したがって、[0.1 0.1 0.5 0.5]の位置は、左下隅から10%の位置から始まり、図の幅の半分に等しい幅と、図の高さの半分に等しい高さを持ちます。
マージンとパディングの組み込みソリューションについては、受け入れられている回答を参照してください。
http://UndocumentedMatlab.com/blog/axes-looseinset-property/で説明されているように、 hiddenaxesLooseInsets
プロパティのデフォルト値を減らしてみてください。
例えば:
set(gca, 'LooseInset', get(gca,'TightInset'))