Наложение участка MATLAB - PullRequest
       32

Наложение участка MATLAB

15 голосов
/ 16 ноября 2009

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

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

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

Ответы [ 2 ]

19 голосов
/ 17 ноября 2009

Пример:

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

8 голосов
/ 16 ноября 2009

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

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

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

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

...