给定.fig文件中三条曲线的图,我想添加另一个图(使用hold all
和plot
),但将其放在已存在的曲线之一(即确保最后一条原始曲线保持前景曲线)。这可以在不必提取绘图数据和重新绘图的情况下实现吗?
如果你知道你想要的线的句柄(例如,因为你打电话给h = plot(...)
,你可以使用uistack
uistack(h,'top')
或者,您可以直接操纵当前轴的子顺序。以下将最后一条曲线置于顶部。
chH = get(gca,'Children')
set(gca,'Children',[chH(end);chH(1:end-1)])
@Jonas使用'Children'
属性给出的分辨率不能以给定的格式工作。它应该修改如下:
chH = get(gca,'Children')
set(gca,'Children',flipud(chH))
当图像有图例时,get(gca,...)
和set(gca,...)
对会导致错误:“使用set时出错。儿童只能设置为自身的排列”在这种情况下,我使用图中的GUI选择工具来选择轴对象,然后只根据需要获取和设置工作,而不是图例。调用set后,您必须通过调用legend(...)
来刷新图例。我有5块情节需要重新排序。如果对订单不确定,请一次两次进行置换,刷新图例并查看是否是您想要的订单
Children
属性保存引用,顺序指示图形堆栈。
如何检索列表的另一个选项是
gcaChildrenList=gca.Children;
这样你可以玩像这样的订单
gca.Children=gca.Children([2:end 1]); % Put the topmost graphic in the bottom
gca.Children=gca.Children([end:-1:1]); % Flip the stack
gca.Children=gca.Children([1:N-1 N+1:end N]); % Put Nth graphics ontop the stack
在Matlab R2014b上测试