Отображение изображения в желаемом масштабе по осям подграфика

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

subplot(3,3,[1 4 7]);
%# image scaled down to fit 1 set of axes
imshow(img);
subplot(3,3,2);
plot(relevantData);
%# And so on with 5 other plots

Я хочу, чтобы изображение масштабировалось либо до фиксированного размера, либо для соответствия доступным ему осям, а не до размера одной оси.

Мой вариант использования — показывать видео вместе с графиками, полученными из видео, так что графики постепенно рисуются вместе с видео. Как только отображение будет правильным, я могу сохранить каждое изображение и объединить их в видео.

Пояснение

Я спрашиваю, возможно ли создать фигуру, как описано, без указания позиции каждого элемента в абсолютном выражении. Хотя таким образом можно делать произвольные фигуры (и я действительно так делал для этого проекта), это очень утомительно.


person reve_etrange    schedule 01.02.2012    source источник


Ответы (1)


Редактировать:

Для изменения размера подзаговора:

В help subplot они упоминают, что вы можете установить параметры на выбранных осях (это то, что они называют областью построения в Matlab).

Используя это, вы можете установить «позицию», как показано на help axes. Это свойство принимает в качестве аргумента:

[left, bottom, width, height]

Как указал @reve_etrange, следует использовать абсолютное позиционирование для параметров осей «Position» и «OuterPosition». однако они могут быть в нормализованных координатах.

Для изменения размера изображения в подзаговоре:

Я думаю, что в выводе help imshow для вас есть 2 полезных вещи:

  1. «InitialMagnification»: настройка увеличения изображения.
  2. «Родительский»: определяет, какой родитель imshow будет использовать для вставки изображения (никогда не пытался использовать imshow с подзаголовками).
person jpjacobs    schedule 01.02.2012
comment
Параметр InitialMagnification не изменяет размер изображения подграфика. - person reve_etrange; 01.02.2012
comment
Ах, хорошо, я явно неправильно понял ваш вопрос. Отредактировал свой пост соответственно - person jpjacobs; 01.02.2012
comment
Если я укажу абсолютную позицию и размер изображения, то не нужно ли мне делать то же самое для других графиков? Как рассчитать точный размер осей построения? - person reve_etrange; 02.02.2012
comment
Я никогда не пробовал. Может быть, вы можете просто попробовать. Вот еще несколько полезных ссылок: mathworks.com/matlabcentral/newsreader/view_thread/238497 , blogs.mathworks.com/pick/2008/ 03/03/advanced-matlab-subplots - person jpjacobs; 02.02.2012
comment
Я знаком с документацией, но, к сожалению, отображение изображения не работает должным образом с subplot. Если вы попытаетесь, вы обнаружите, что изменение увеличения не имеет никакого эффекта в этом контексте. - person reve_etrange; 02.02.2012
comment
Вот почему я отредактировал свой пост и добавил информацию о масштабировании осей в подзаголовок (как указано в справке). ИМХО -1 незаслуженно. - person jpjacobs; 02.02.2012
comment
Если вы добавите, что кто-то должен использовать абсолютное позиционирование (т. е. свойства осей Position и OuterPosition), но что позиции могут быть в нормализованных координатах, я проголосую и отмечу ваш ответ как правильный. - person reve_etrange; 03.02.2012