Постройте наложение MATLAB

Как взять один график и поместить его в угол (или где угодно) другого графика в MATLAB?

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

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


person ServAce85    schedule 16.11.2009    source источник


Ответы (2)


Пример:

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')

скриншот

person Amro    schedule 16.11.2009
comment
stackoverflow.com/ вопросы/22485877/ - person Sibbs Gambling; 18.03.2014

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

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

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

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

person Mikhail    schedule 16.11.2009