Подграфики одинаковой высоты в MATLAB

у меня есть что-то вроде

subplot(2,2,1)
plot(y1)
subplot(2,2,3)
plot(y2)
subplot(2,2,[2 4])
plot(y3)

Последний график y3 не имеет той же высоты, что и графики y1 + y2. Как я могу это исправить?

Хью Нолан прав. В общем проблем быть не должно. Однако кажется, что коробочные диаграммы автоматически сжимаются после построения.

Как я могу получить коробку, чтобы она имела ту же высоту, что и параллельные подзаголовки?


person universalis    schedule 12.07.2013    source источник


Ответы (3)


Функция ylim позволяет вам получить и установить пределы оси y, поэтому вы можете сделать:

subplot(2,2,1)
plot(y1)
yl1=ylim;
subplot(2,2,3)
plot(y2)
ylim(yl1);
subplot(2,2,[2 4])
plot(y3)
ylim(yl1);
person Hugh Nolan    schedule 12.07.2013
comment
О, извините, я неправильно понял ваш вопрос. Ваш код работает для меня. Какую версию Матлаба вы используете? Как выглядит твоя фигура? Какой именно ваш код? Поскольку то, что вы опубликовали, работает, вероятно, это другая часть кода, которая не работает. - person Hugh Nolan; 12.07.2013

Вы можете вручную указать положение, ширину и высоту каждого подграфика, используя subplot('Position',[left bottom width height]) вместо обычной команды subplot. Дополнительную информацию см. на странице Mathworks.

person user2482876    schedule 12.07.2013
comment
left и bottom - это расстояние от нижнего левого угла рисунка, где вы хотите, чтобы появился подзаговор. Если вы хотите получить значения другого подграфика, вы можете вызвать его с помощью дескриптора, а затем использовать функцию get. Что-то вроде: sp1 = subplot(2,2,1);, а затем [left bottom width height] = get(sp1,'Position'); - person user2482876; 12.07.2013

Вы пробовали функцию осей/осей? Это устанавливает xlim и ylim графика.

person Pranav    schedule 13.07.2013