7

当您在 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])

在这里,红线显示在蓝线的顶部(它们相交的地方)。有什么方法可以设置画线的“深度”,这样你就可以在已经存在的东西下面绘制东西?

4

2 回答 2

20

使用uistack命令。例如:

h1 = plot(1:10, 'b');
hold on;
h2 = plot(1:10, 'r');

将绘制两条线,红线绘制在蓝线的顶部。如果你这样做:

uistack(h1);

蓝线将被带到前面。

于 2008-10-16T06:38:50.657 回答
4

您还可以通过设置当前坐标区的子向量的顺序来完成此操作。如果您执行以下操作:

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);
于 2008-10-16T08:51:39.577 回答