如何将一个绘图放在MATLAB中另一个绘图的角落(或任何地方)?
我有对数数据,在图的右上角有一个很大的空白区域。在白色空间中,我想覆盖一个较小的图,其中包含该白色空间中的对数图的放大版本(有点像放大的视图)。
在你告诉我无法完成之前,我想提一下我已经看到它在行动了。如果我的描述不足,请告诉我,我会尝试更好地向您描述。
答案 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')
答案 1 :(得分:8)
您可以使用axes
属性'position'
和'units'
并过度使用它们。注意在较大的轴之后创建小轴或使用uistack()
功能,以便大的不会隐藏小轴。
你不能做的是让一个斧头成为另一个的孩子(就像Mathworks做legend
)。但是你无论如何都不需要它。
对于第二个图,您必须使用axes
和line
而不是plot
和hold on
。
单位为'normalized'
(默认值)允许在调整父图形大小时统一调整大小(例如,手动最大化)。