在MATLAB中绘图时循环颜色

时间:2012-04-14 00:32:50

标签: matlab colors plot

当我使用hold on在同一个地块上绘制几条曲线时,每条曲线默认为相同的颜色(蓝色)。我希望他们拥有各种不同的颜色。

我见过的一个解决方案是制作一个颜色矢量,例如c = ['k', 'g', 'r', ...]并循环播放,但我不喜欢这个解决方案。如果我的绘图数量大于我的颜色向量c的长度,事情将会中断,我不想在每个文件中定义c

有更好的解决方案吗?

2 个答案:

答案 0 :(得分:11)

请尝试使用hold all。曲线应自动在色彩图上循环。来自help hold

  

保持所有保持图形和当前线条颜色和线条样式   随后的绘图命令不会重置ColorOrder和   LineStyleOrder属性值到列表的开头。绘制   命令继续循环通过预定义的颜色和线   最后一个图表在列表中停止的样式。

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

答案 1 :(得分:3)

您还可以更改全局环境中的默认'ColorOrder'属性:

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

我替换了hsv色彩图给出的10种颜色的默认颜色。当然,您也可以使用colormap颜色生成器(hsvhotcooperlines,...,使用{中的任何一个来放置任何其他颜色集。 {1}}了解更多细节),就像我之前做的那样,或者只是放置任何nx 3矩阵。 如果您想使用当前轴的颜色列表:{black,green,red}:

doc colormap