MATLAB绘图重叠

15

如何在MATLAB中将一个图形放置在另一个图形的角落(或其他任何位置)?

我有一些具有大量白色空间的对数数据,这些数据在图形的右上方留有大量空白。我想在这个空白区域上叠加一个较小的图形,其中包含放大的对数图形(类似于放大视图)。

在告诉我它不能做到之前,我想提一下,我已经看到它在实际操作中使用。如果我的描述不够清楚,请告诉我,我会尝试更好地描述它。

2个回答

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


http://stackoverflow.com/questions/22485877/matlab-embed-zoom-in-subgraph-into-the-graph - Sibbs Gambling

8
您可以使用axes属性'position''units'并使它们重叠。注意在大轴后面创建小轴或使用uistack()函数,以便大轴不会遮挡小轴。
您不能将一个轴设置为另一个轴的子级(就像Mathworks使用legend一样)。但是您也不需要这样做。
对于第二个图,您必须使用axesline而不是plothold on
当父级图被调整大小(例如手动最大化)时,以'normalized'为单位可实现统一可调整大小的外观。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接