2012-04-14 203 views
7

当我使用hold on在同一个绘图上绘制几条曲线时,每条曲线的默认颜色都是相同的(蓝色)。我希望他们有不同的颜色。在MATLAB中绘图时循环遍历颜色

我看到的一种解决方案是制作一个颜色矢量,例如, c = ['k', 'g', 'r', ...]并循环它,但我不喜欢这个解决方案。如果我的图的数量大于我的颜色矢量的长度c,我不想在每个文件中定义c,那么情况会中断。

有没有更好的解决方案?

+0

可能重复://计算器。 com/questions/2028818 /自动绘制不同颜色的线) – chappjc 2014-04-12 18:59:02

回答

11

尝试使用hold all代替。您的曲线应该自动在色彩映射上循环。从help hold

容纳所有拥有图形和当前行的颜色和线条样式,以便 后续绘图命令不要在ColorOrder和 LineStyleOrder属性值复位到列表的开头。绘制 命令将继续循环执行预定义的颜色和 行中最后一个图停止在列表中的样式。

您可以使用get(gca,'ColorOrder')检查色彩图。

+0

非常好,我知道必须有一个简单的解决方案。 – 2012-04-14 00:51:30

+0

来自同一页:“保持全部保持不变” 注意:此语法将在未来版本中删除,请使用hold on。 – 2016-07-11 12:14:03

3

你也可以改变对地球环境做默认'ColorOrder'属性:

set(0,'DefaultAxesColorOrder',hsv(10)) 

,我更换了默认颜色为一组由hsv颜色表给出的10种颜色。当然,您也可以使用颜色地图颜色生成器(hsv,hot,cooper,, lines,...,使用doc colormap获取更多详细信息)放置任何其他颜色组,如以前一样,或者仅放置任何nx 3矩阵。 如果你想使用的颜色列表:当前轴你会做{黑,绿,红}:[自动绘制不同颜色的线(HTTP的

set(gca,'ColorOrder', [0 0 0; 1 0 0; 0 1 0])