2011-11-03 149 views
4

我想能够选择多线图的颜色,但我无法得到它。这是我的代码在Matlab中设置绘图函数的颜色

colors = {'b','r','g'}; 
T = [0 1 2]'; 
column = [2 3]; 
count = magic(3); 
SelecY = count(:,column), 
plot(T,SelecY,'Color',colors{column}); 
+1

另外看看这个Q/A:http://stackoverflow.com/questions/2028818/automatically-plot-different-colored-lines-in-matlab –

+0

@JohnColby:谢谢你的链接。 – julian

回答

3

您一次只能指定一种颜色,并且必须指定为3元素的RGB矢量。您的三条路线分别是:

  1. 循环并通过字符串,指定颜色,如你有他们:

    hold on 
    for i=1:size(SelecY, 2) 
        plot(T, SelecY(:,i), colors{i}); 
    end 
    
  2. 使用RGB颜色规范,您可以通过“色彩传递的颜色“属性,就像你试图做以上:

    cols = jet(8); 
    hold on 
    for i=1:size(SelecY, 2) 
        plot(T, SelecY(:,i), 'Color', cols(i,:)); 
    end 
    
  3. 而且采用RGB方式,可以预先指定ColorOrder,然后通过让MATLAB周期:

    set(gca, 'ColorOrder', jet(3)) 
    hold all 
    for i=1:size(SelecY, 2) 
        plot(T, SelecY(:,i)); 
    end 
    

为事实后设置颜色,看到其他的答案。

+0

非常感谢您的多个答案。 – julian

4

出于某种原因,我无法得到它无需使用手柄的工作,但:

h = plot(T,SelecY); 
set(h, {'Color'}, colors(column)'); 

为我工作。

+1

非常感谢您的回答。它似乎是最紧凑和直接的。 – julian