我在同一个地块中绘制了大约10条线,并使用plot
的内置选项循环显示颜色。可悲的是,此选项只有7种颜色,然后再次以第一种颜色开始。当颜色循环一次时,Matlab中是否有选项可以获得不同的线型?
我知道我可以手动更改每一行的颜色和线条样式,但我更喜欢自动解决方案。
答案 0 :(得分: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())