如何在 Matlab 绘制完图形后修改不同层的可见性?

4

一个图形文件已保存。当几条线交叉时,我希望使其中一条线可见。如何修改不同层的线条而不重新绘制图形?

2个回答

3

使用uistack(参见文档)。例如,在以下操作之后:

figure
hold on
hblue=plot([1 2],[3 4],'b','LineWidth',5);
hred=plot([1 2],[4 3],'r','LineWidth',5);

红色线在顶部(如果红色线覆盖了蓝色线,则看不到蓝色线)。然后,如果您使用uistack(hblue,'top'),则将蓝色线置于顶部。重新排序绘图的其他选项,而不是top,包括updownbottom。您可以选择指定updown的步骤数(例如,uistack(h,'up',2)将句柄向上移动两层 - 尽管在我的简单示例中不需要)。
如果像您所说的那样,“图形文件已保存”,并且您没有绘图的句柄(例如,在我的示例中为hbluehred),则在加载绘图后,可以使用get(gca,'children')获取句柄。

1

如果我理解你的意思正确的话,在绘图之前尝试使用hold on...


抱歉,也许我误导了您。我的意思是修改不同图层的可见性。例如,在图中我有第1层和第2层。现在,第1层被第2层覆盖,因此无法看到。我想做的是修改第1层的可见性,以便我可以看到第1层中的线条或图形。 - datcn
实际上不是这样。假设我们使用y1=plot(1:t,x1)和y2=plot(1:t,x2),'hold on'可以在同一图中维护两条线。但是,如果y1和y2有交点,我们首先绘制y1,那么在交点处,y1将被y2覆盖。现在我想要做的是让y1可见。所以我想知道是否需要更改不同层的可见性。 - datcn

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