使用lines里的9种颜色绘制9条线,采用了for循环,为什么画出来9条线颜色一样?
c=colormap(lines(9));
for i=1,9
plot(z,SC90,z,D0_90,z,D1_90,z,D2_90,z,D3_90,z,D4_90,z,D5_90,z,D6_90,z,D7_90,'color',c(i,:),'LineWidth',1)
end
使用lines里的9种颜色绘制9条线,采用了for循环,为什么画出来9条线颜色一样?
c=colormap(lines(9));
for i=1,9
plot(z,SC90,z,D0_90,z,D1_90,z,D2_90,z,D3_90,z,D4_90,z,D5_90,z,D6_90,z,D7_90,'color',c(i,:),'LineWidth',1)
end
引用 皆我百晓生 小程序回复内容作答:
在你的代码中,虽然使用了循环来绘制多条线,但是在每次循环中的绘制命令中,你将所有的线都放在了同一个plot
函数中。这导致每次循环的绘制命令中的线都叠加在了一起,所以最终看起来只有一条线,且颜色相同。
要正确绘制多条不同颜色的线,你需要在每个循环中分别使用一个plot
函数来绘制一条线。以下是修改后的示例代码:
c = colormap(lines(9));
for i = 1:9
hold on % 保持绘图环境,防止每次循环都重新开始绘图
% 根据你的需求,下面的代码是你提供的变量
plot(z, SC90, 'color', c(i,:), 'LineWidth', 1)
plot(z, D0_90, 'color', c(i,:), 'LineWidth', 1)
plot(z, D1_90, 'color', c(i,:), 'LineWidth', 1)
plot(z, D2_90, 'color', c(i,:), 'LineWidth', 1)
plot(z, D3_90, 'color', c(i,:), 'LineWidth', 1)
plot(z, D4_90, 'color', c(i,:), 'LineWidth', 1)
plot(z, D5_90, 'color', c(i,:), 'LineWidth', 1)
plot(z, D6_90, 'color', c(i,:), 'LineWidth', 1)
plot(z, D7_90, 'color', c(i,:), 'LineWidth', 1)
hold off % 结束本次绘图
end
在上述修改后的代码中,使用了hold on
命令来在每次循环中保持绘图环境,同时使用了hold off
命令来结束本次绘图。这样,每个循环中的绘图命令都会绘制一个单独的线,并且线的颜色为预先定义的不同颜色。