绘图叠加MATLAB

时间:2009-11-16 20:31:31

标签: matlab plot overlay figure

如何将一个绘图放在MATLAB中另一个绘图的角落(或任何地方)?

我有对数数据,在图的右上角有一个很大的空白区域。在白色空间中,我想覆盖一个较小的图,其中包含该白色空间中的对数图的放大版本(有点像放大的视图)。

在你告诉我无法完成之前,我想提一下我已经看到它在行动了。如果我的描述不足,请告诉我,我会尝试更好地向您描述。

2 个答案:

答案 0 :(得分:19)

一个例子:

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

答案 1 :(得分:8)

您可以使用axes属性'position''units'并过度使用它们。注意在较大的轴之后创建小轴或使用uistack()功能,以便大的不会隐藏小轴。

你不能做的是让一个斧头成为另一个的孩子(就像Mathworks做legend)。但是你无论如何都不需要它。

对于第二个图,您必须使用axesline而不是plothold on

单位为'normalized'(默认值)允许在调整父图形大小时统一调整大小(例如,手动最大化)。