[matlab] 自动绘制不同的彩色线条



Answers

实际上,让颜色循环的一个体面的捷径方法是使用hold all; 代替hold on; 。 每个连续的plot将通过MATLAB的默认颜色映射进行旋转(自动为您)。

从MATLAB网站上hold

hold all图形和当前线条的颜色和线条样式,以便后续的绘图命令不会将ColorOrder和LineStyleOrder属性值重置到列表的开头。 绘图命令继续循环显示列表中最后一个绘图停止的预定义颜色和线型。

Question

我试图在同一个图上绘制几个核密度估计,我希望它们都是不同的颜色。 我有一个使用字符串'rgbcmyk'并逐步遍历每个单独的阴谋的kludged解决方案,但我开始有7个迭代后重复。 有没有更容易/更有效的方式来做到这一点,并有更多的颜色选择?

for n=1:10
 source(n).data=normrnd(rand()*100,abs(rand()*50),100,1); %generate random data
end
cstring='rgbcmyk'; % color string
figure
hold on
for n=1:length(source)
 [f,x]=ksdensity(source(n).data); % calculate the distribution
 plot(x,f,cstring(mod(n,7)+1))  % plot with a different color each time
end



派对晚了。 我正在自己研究这一点,并发现了这个名为ColorOrder的轴选项,您可以指定会话的颜色顺序,或者只是指定图形,然后绘制一个数组,让MATLAB自动循环指定的颜色。

请参阅更改默认的ColorOrder

set(0,'DefaultAxesColorOrder',jet(5))
A=rand(10,5);
plot(A);





Related