改变GridSize现有的非空的TiledChartLayout对象
22日视图(30天)
显示旧的评论
你好所有的,
我有一个问题关于管理tile布局。
我想改变的组织布局
后
瓷砖已经创建的(例如,添加或删除一个瓦)。
我以为我可以修改GridSize TiledChartLayout对象的属性在得到处理。
然而,当我尝试这种方法,得到:
“无法设置GridSize当TiledChartLayout不空”
因此,目前尚不清楚我怎么应付这种情况。
虚拟的例子:
图;
tl = tiledlayout (1,1);%第一step-just阴谋
nexttile (1);
情节((1 2 3),(4 5 6),“o”);
想象现在,创建图之后,我想添加第二个瓷砖,组织块在2行和列。
我在想我可以做的事:
tl.GridSize = 1 [2];
nexttile (2)
情节((1 2 3)- (4 5 6),“s”);
但它不工作。我得到一个错误当试图改变网格大小(tl.GridSize = (2 - 1))
无法设置GridSize当TiledChartLayout不是空的
如果只是想添加一个新的瓷砖没有试图改变网格大小(即使用直接nexttile(2)),我得到了错误:
错误使用nexttile
瓷砖不适合的布局。
任何建议如何管理呢?
谢谢你!
Gabriele
0评论
接受的答案
亚当Danz
2021年6月7日
如何改变现有tiledlayout的网格布局图?
如果
tiledlayout
生成的
流
安排然后简单地调用
nexttile
添加新轴。
如果
tiledlayout
是固定的,源代码不可用或无法改变,那么你可以将瓦片复制到一个新的图与你想要的布局。
创建基础图2 x2的布局
无花果=图();
tlo = tiledlayout(图2 2);
为i = 1:4
nexttile ()
x = linspace(我*我*π,π);
情节(x, sin (x)。*兰德(大小(x)))
标题(sprintf (“瓦% d ',我)
包含(sprintf (“X % d ',我)
ylabel (sprintf (“Y % d ',我)
结束
linkaxes
图(图)%显示图
瓦片复制到新的图3 x2布局和加1瓦
originalFig
是原始图的图处理。得到处理使用
gcf
或当你打开图使用
openfig ()
。
originalFig = gcf ();
%得到瓷砖(即轴)处理
ax =翻转(findobj(图,“类型”,“轴”));
%创造新的网格图新瓷砖
newfig =图();
tlo = tiledlayout (newfig、2、3);
%将现有轴从原始图复制到新的图
newax = gobject (tlo.GridSize);
tempax = gobject(大小(ax));
为i = 1:元素个数(ax)
tempax (i) = nexttile ();
newax (i) = copyobj (ax (i), newfig);
集(newax(我),“单位”,tempax .Units(我),“位置”,tempax(我).Position)
tempax(我)。可见=“关闭”;
结束
%添加新的瓷砖
nexttile ()
情节(魔法(5),“- - -”)
%这是可选的但是必须添加额外的瓷砖。
删除(tempax)
0评论
更多的答案(2)
斯科特·麦肯齐
2021年6月6日
试着用
流
网格大小……
tiledlayout (“流”);
nexttile;
情节((1 2 3),(4 5 6),“ob”);
暂停(2);
nexttile;
情节([2 1 3],[4 5 6],“是”);
第一个图:
2秒后:
6个评论
Gabriele
2021年6月7日
1评论
亚当Danz
2021年6月7日
这种方法很好。只是不意外地盖原始图通过储蓄(假定图被打开)。减少发生的可能性,你可以关闭循环或原始图后,更好的是,使用
onCleanup
关闭图在发生一个错误。你甚至可能想打开图在隐形模式下使用
openfig (___可见性)
。