【问题标题】:Cycle over colors while plotting in MATLAB在 MATLAB 中绘图时循环颜色
【发布时间】:2012-04-26 08:35:47
【问题描述】:

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

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

有没有更好的解决方案?

【问题讨论】:

标签: matlab colors plot


【解决方案1】:

尝试改用hold all。您的曲线应自动在颜色图上循环。来自help hold

hold all 保存图形和当前的线条颜色和线条样式,所以 后续的绘图命令不会重置 ColorOrder 和 LineStyleOrder 属性值以列表开头。绘图 命令继续循环通过预定义的颜色和线 列表中最后一个图形停止位置的样式。

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

【讨论】:

  • 太好了,我知道必须有一个简单的解决方案。
  • 来自同一页面:“hold all 与 hold on 相同。注意:此语法将在未来版本中删除。改用 hold on。”
【解决方案2】:

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

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

我用hsv colormap 给出的一组10 种颜色替换了默认颜色。当然,您也可以使用颜色图颜色生成器(hsvhotcooperlines,...,使用 doc colormap 了解更多详细信息)放置任何其他颜色集,如我以前做过,或者只是放置任何 nx 3 矩阵。 如果您想为当前轴使用颜色列表:{black, green, red},您可以这样做:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    相关资源
    最近更新 更多