Наложение сюжетов MATLAB

Как вы берете один сюжет и помещаете его в угол (или где-нибудь в этом отношении) другого участка в MATLAB?

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

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

Ответы

Ответ 1

Пример:

x = 1:20;
y = randn(size(x));

plot(x, y,'LineWidth',2)
xlabel('x'), ylabel('y'), title('Plot Title')

h = axes('Position', [.15 .65 .2 .2], 'Layer','top');
bar(x,y), title('Bar Title')
axis(h, 'off', 'tight')

screenshot

Ответ 2

Вы можете использовать axes свойства 'position' и 'units' и сделать их чрезмерно. Обратите внимание на создание небольших осей после большого или используйте функцию uistack(), чтобы большой не скрывал маленький.

То, что вы не можете сделать, это сделать дочерние оси другого (например, Mathworks делать с legend). Но вам это все равно не нужно.

Для второго сюжета вы должны использовать axes и line вместо plot и hold on.

Единицы как 'normalized' (по умолчанию) допускают однородный изменяемый размер при изменении размера родительской фигуры (например, вручную максимизированы).