如何减少matlab中子图的边界?

时间:2011-07-13 20:17:49

标签: matlab subplot

  

可能重复:
  MATLAB subplot margin

在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

Example of wasted white space in subplots

图中超过50%的空间被浪费为“空白”我想缩小该空白区域,但是未能成功识别出这样做的机制。想法?

由于 约翰

3 个答案:

答案 0 :(得分:47)

文件交换上的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

enter image description here

答案 1 :(得分:6)

您可以使用

自己(或以编程方式)定位它们
subplot('Position',[left bottom width height]);

默认情况下,坐标已标准化。所以一个位置 [0.1 0.1 0.5 0.5]将从10%开始 从左下角开始,宽度相等 到图形宽度的一半,高度等于一半 身材高度。

有关边距和填充的内置解决方案,请参阅已接受的答案。

答案 2 :(得分:5)

尝试减少隐藏轴LooseInsets属性中的默认值,如http://UndocumentedMatlab.com/blog/axes-looseinset-property/

中所述

例如:

set(gca, 'LooseInset', get(gca,'TightInset'))