当您在 Matlab 中绘制内容时,最近绘制的数据系列将放置在已经存在的内容之上。例如:
figure; hold on
plot(sin(linspace(0,pi)),'linewidth',4,'color',[0 0 1])
plot(cos(linspace(0,pi)),'linewidth',4,'color',[1 0 0])
在这里,红线显示在蓝线的顶部(它们相交的地方)。有什么方法可以设置画线的“深度”,这样你就可以在已经存在的东西下面绘制东西?
使用uistack命令。例如:
h1 = plot(1:10, 'b');
hold on;
h2 = plot(1:10, 'r');
将绘制两条线,红线绘制在蓝线的顶部。如果你这样做:
uistack(h1);
蓝线将被带到前面。
您还可以通过设置当前坐标区的子向量的顺序来完成此操作。如果您执行以下操作:
figure; hold on
h1 = plot(sin(linspace(0,pi)),'linewidth',4,'color',[0 0 1]);
h2 = plot(cos(linspace(0,pi)),'linewidth',4,'color',[1 0 0]);
h = get(gca, 'Children');
你会看到 h 是一个包含 h1 和 h2 的向量。图形堆叠顺序由句柄在 h 中的顺序表示。在此示例中,要反转堆叠顺序,您可以执行以下操作:
h = flipud(h);
set(gca, 'Children', h);