在for循环中绘图 - 图例不显示适当的线条颜色

时间:2013-05-07 23:05:24

标签: matlab plot

我需要在一个窗口中绘制3条线。 3行取决于变量nbPoints。问题是:图例中的线条只有1种颜色:红色。对此有什么解决方案?

谢谢!

hold on
nbPoints = [6 10 14];
for nb = nbPoints
    interpolatiepunten = linspace(-1,1,nb);
    veelterm = interpolerende_veelterm(interpolatiepunten, rungeFunctie, 'lagrange');

    y = zeros(201);
    index = 1;
    for i = -1:0.01:1
        y(index) = veelterm.val(i);
        index = index + 1;
    end

    if (nb == 6)
        color = 'r';
    elseif (nb == 10)
        color = 'b';
    else
        color = 'g';
    end
    plot(-1:0.01:1, y, color);
end
legend({'a', 'b', 'c'});
% legend('a', 'b', 'c'); does not work
hold off

1 个答案:

答案 0 :(得分:0)

我之前使用过循环和绘图颜色循环,使用这种方法:

Colortypes = ['r','b','g'];
nbPoints = [6 10 14];
x = [1:10];

figure
hold on

loop_ind = 1;
for ii=nbPoints
y = ii*x;
linespecvec = Colortypes(loop_ind);
plot(x,y,linespecvec)
loop_ind = loop_ind+1;
end

legend('a','b','c')

因此,线条颜色循环,就像nbPoints循环一样。结果图是:

enter image description here