当您在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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top