Вопрос

Как взять один график и поместить его в угол (или где угодно) другого графика в 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')

screenshot

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top