2017-08-28 21 views
1

我在同一图中绘制10条线,并使用内置选项plot循环显示颜色。可悲的是,这个选项只有7种颜色,然后从第一个颜色开始。在颜色循环一次时,是否有像Matlab这样的选项可以获得不同的线型? 我知道我可以为每一行手动更改颜色和线条样式,但我更喜欢自动解决方案。有多条线的Scilab图:自动循环槽'LineSpec'的样式

回答

0

我不知道内置的方式来做到这一点,但阅读Linespec手册页,您可以创建一个函数来循环所有说明符。

其中最简单的是:

function Linespec=CycleSpec(n) 
    // n : from 0 to N 
    Linestyle =['-';'--';':';'-.'] 
    Linecolor = ['r';'g';'b';'c';'m';'y';'k';'w'] 
    Linemarker =['';'+';'o';'*';'.';'x';'s';'d';'^';'v';'>';'<';'p'] 
    i = modulo(n,size(Linecolor,'*'))+1 
    j = modulo(floor(n/size(Linecolor,'*')),size(Linestyle,'*'))+1 
    k = modulo(floor(n/size(Linecolor,'*')/size(Linestyle,'*')),size(Linemarker,'*'))+1 
    Linespec = Linestyle(j)+Linecolor(i)+Linemarker(k) 
endfunction 

这可能是用作

figure(1) 
for n=0:40 
    plot(x,x+n,CycleSpec(n)) 
end 

如果你真的想要的东西简单,我们可以添加一个全局变量保存计数器,所以你只需要调用该功能,不需要参数

function Linespec=CycleSpec() 
    // n : from 0 to N 
    global CycleSpecCounter 
    if CycleSpecCounter==[] then 
    CycleSpecCounter = 0 
    end 
    n=CycleSpecCounter 
    [...] same code as before [...] 
    CycleSpecCounter=CycleSpecCounter+1 
endfunction 

而你只需要键入

plot(x,x+n,CycleSpec())