Наложение графика MATLAB
Вопрос
Как взять один график и поместить его в угол (или где угодно) другого графика в 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'
(по умолчанию) обеспечивает единый вид изменяемого размера при изменении размера родительской фигуры (например,разворачивается вручную).