Как уменьшить границы вокруг участков в matlab? [Дубликат]

44

Возможный дубликат:
MATLAB по размеру подзаголовка

В 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

Изображение 538

более 50% пространства на рисунке теряется как "пустое". Я хотел бы уменьшить это пустое место, но не удалось определить механизм для этого. Мысли?

Спасибо Джон

Теги:
subplot

3 ответа

47
Лучший ответ

Функция subaxis на File Exchange позволяет указать поля для подзаговоров.

Пример использования:

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

Изображение 6325

6

Вы можете разместить их самостоятельно (или программно) с помощью

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

По умолчанию координаты нормированы. Итак, позиция от 0,1 0,1 0,5 0,5] начнется с 10% пути в из левого нижнего угла и будет иметь ширину равную на половину ширины фигуры и высоту, равную половине высота фигуры.

См. принятый ответ для встроенного решения для полей и заполнения.

4

Попробуйте уменьшить значения по умолчанию в свойствах скрытых осей LooseInsets, как описано в http://UndocumentedMatlab.com/blog/axes-looseinset-property/

Например:

set(gca, 'LooseInset', get(gca,'TightInset'))
  • 0
    По крайней мере, в моем примере это ничего не делает на 2011a.
  • 0
    дополнительное пространство занято скрытыми метками галочек осей X & Y, и я не верю, что их можно устранить. Но вы можете улучшить ситуацию следующим образом: figure(2); for i = 1 : 25; hax=axes(); plot(t, sin(i*t)); axis tight; axis off; rowIdx=fix((i-1)/5); colIdx=mod(i-1,5); newPos=[.2*colIdx,0.8-.2*rowIdx,.2,.2]; set(gca,'outer',newPos), end
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню