我创建了一个包含4个子图的图形,如:
y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
fig = figure
for i = 1 : 4
h(i) = subplot(1,4,i)
bar(y)
end
现在我想交换子图的顺序。例如,第一个子图应该放在最后一列(第4个),第二个子图应该与第3个交换。
如果不重新生成这个数字是否可行?
答案 0 :(得分:5)
也许您可以更改轴'position'
的{{1}}。例如:
h
答案 1 :(得分:2)
有可能再生这种形象。您可以转到绘图工具,右键单击该图并选择"显示代码"。这将打开一个带有重新创建图形的函数的新文件。在那里你可以改变你的subplot-position并调用函数以获得带有切换子图的数字。
虽然这会重新创建图形,但您不必重新评估最初创建图形的函数或脚本。
PS:我不确定这个功能有多新。
答案 2 :(得分:0)
除了交换Position
对象的axes
属性外,您还可以交换Parent
个对象的bar
属性。这样做的好处是可以保持axes
定位不变。
一个简单的例子:
function testcode
y1 = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
y2 = -y1;
h(1) = subplot(1, 2, 1);
b(1,:) = bar(y1);
h(2) = subplot(1, 2, 2);
b(2,:) = bar(y2);
swapbar(h, b, [1,2]);
end
function swapbar(axesobjects, barobjects, axesswap)
set(barobjects(axesswap(1), :), 'Parent', axesobjects(axesswap(2)));
set(barobjects(axesswap(2), :), 'Parent', axesobjects(axesswap(1)));
end
这里我创建了一个小辅助函数swapbar
来交换两个轴。这根本不是一个强大的实现,但它可以很好地说明这个概念。
旧:
新: