Ответ 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')
Как вы берете один сюжет и помещаете его в угол (или где-нибудь в этом отношении) другого участка в MATLAB?
У меня есть логарифмические данные, которые имеют большое белое пространство в верхней правой части графика. В белом пространстве я хотел бы наложить небольшой участок, содержащий увеличенную версию графика журнала в этом белом пространстве (вроде как увеличенное изображение).
Прежде чем рассказать мне, что это невозможно, я хотел бы упомянуть, что я видел это в действии. Если мое описание не хватает, просто дайте мне знать, и я попытаюсь лучше описать его вам.
Пример:
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')
Вы можете использовать axes
свойства 'position'
и 'units'
и сделать их чрезмерно. Обратите внимание на создание небольших осей после большого или используйте функцию uistack()
, чтобы большой не скрывал маленький.
То, что вы не можете сделать, это сделать дочерние оси другого (например, Mathworks делать с legend
). Но вам это все равно не нужно.
Для второго сюжета вы должны использовать axes
и line
вместо plot
и hold on
.
Единицы как 'normalized'
(по умолчанию) допускают однородный изменяемый размер при изменении размера родительской фигуры (например, вручную максимизированы).