如何在MATLAB中的每次迭代中更改绘图的颜色?

YSF*_*YSF 5 matlab plot legend

以下是我的matlab代码的一部分.如图所示,我想在一个图中绘制8条曲线.但我想用一种独特的颜色制作每条曲线.我还想更改图例,以便每个图例都更改i.

例如,对于i = 1,图例将是gho-1,对于i = 2 gho-2,依此类推.我希望它是自动的,因为我i有时会改变ex:(i = 1:20).

for i=1:8
.
.
.
plot(b,r,'b');
legend(['qho-',num2str(i)]);    
hold on
end
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

你好,我们又见面了,

我有其他问题:如果我有以下内容

for i=1:8
.
b1=(1:3,:)
b2=(3:6,:)
figure(1);plot(b1,r,'*');
figure(2);plot(b2,r,'*');

Leg{i} = ['qho-',num2str(i)];    

end
legend(Leg)
Run Code Online (Sandbox Code Playgroud)

我只获得了最后一个数字的颜色传奇.不是两个..我怎么解决这个问题?!

再次感谢

Dan*_*Dan 8

只需使用hold all而不是hold on将图例标签放在单元格数组中

hold all
for i=1:8
    .
    .
    .
    plot(b,r);

    Leg{i} = ['qho-',num2str(i)];    

end
legend(Leg)
Run Code Online (Sandbox Code Playgroud)

请参阅此问题,例如:稀疏矩阵图matlab


注意:

Matlab R2014b开始,hold on已被修改为类似hold all,即每次绘制一个图时改变颜色.文档声明hold all将在以后的版本中删除语法.


Amr*_*mro 7

怎么样的:

figure, hold on
N = 8;
h = zeros(N,1);    %# store handle to line graphic objects
clr = lines(N);    %# some colormap
for i=1:N
    %# plot random data
    y = cumsum(randn(100,1));
    h(i) = plot(y, 'Color',clr(i,:));
end
hold off
legend(h, num2str((1:N)','gho-%d'))    %# display legend
Run Code Online (Sandbox Code Playgroud)

情节