2013-07-12 4 views
4

У меня есть что-то вродеделянок одинаковой высоты в MATLAB

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

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

Хью Нолан - это право. В целом не должно быть никаких проблем. Тем не менее, коробки, кажется, автоматически сжимаются после того, как они были нанесены на график.

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

ответ

1

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

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); 
+0

О, извините, я не понял ваш вопрос. Ваш код работает для меня. Какую версию Matlab вы используете? Как выглядит ваша фигура? Что такое ваш код? Поскольку то, что вы опубликовали, работает, вероятно, это еще одна часть кода, которая не работает. –

0

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

+0

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

0

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

Смежные вопросы