子图中的 Matlab 重定位图

Matlab relocation graphs in the subplotted figure

我使用命令 subplot(1,2,1) 和 subplot(1,2,2) 绘制了我的图表。如您所见,我在图中有 2 个图表。我想重新定位图表,比如第一个图表应该在第二个图表的位置,第二个图表应该在第一个图表的位置。

我假设您已经绘制了数据并且不能再次绘制它们。然后你可以得到坐标轴句柄,即通过找到当前图形(gcf)中的所有坐标轴对象指向每个子图的指针,它们是not图例和不是 颜色条。 (此 findobj 命令取自 Nzbuu 对 this question 的回答)

ax = findobj(gcf,'type','axes','-not','Tag','legend','-not','Tag','Colorbar');

要获取当前轴的位置,您可以读取轴对象的(嗯...)'Position' 属性:

pos = get(ax,'Position');

其中 returns 一个 2x1 元胞数组,其中每个条目都是相应轴的 1x4 位置向量。现在我们只需要交换两个位置:

set(ax(1),'Position',pos{2});
set(ax(2),'Position',pos{1});

就这样,两个支线互换了。