【问题标题】:LINES(M) unique colors MatlabLINES(M) 独特的颜色 Matlab
【发布时间】:2013-08-05 16:24:32
【问题描述】:

我正在使用LINES(M) Matlab 函数,它返回一个包含颜色图的 M×3 矩阵。问题是有时它会两次返回相同的颜色。作为一个例子,我在结果中使用了LINES(8),如下所示,第一行和最后一行是相同的,所以我问返回的矩阵如何具有唯一的颜色集,如果有人可以建议?

0   0   1
0   0.500000000000000   0
1   0   0
0   0.750000000000000   0.750000000000000
0.750000000000000   0   0.750000000000000
0.750000000000000   0.750000000000000   0
0.250000000000000   0.250000000000000   0.250000000000000
0   0   1

【问题讨论】:

  • 您打算如何使用颜色图?如果您使用它来为同一图形上重复调用绘图设置线条颜色,那么您是否考虑过使用“保留所有”?
  • @grantnz 感谢您的评论。其实我想做的是使用LINES方法获得独特的颜色,您对此有什么建议吗?

标签: matlab


【解决方案1】:

lines 颜色图最多有 7 种独特的颜色,之后它们开始重复。

>> lines(8)
ans =
            0            0            1
            0          0.5            0
            1            0            0
            0         0.75         0.75
         0.75            0         0.75
         0.75         0.75            0
         0.25         0.25         0.25
            0            0            1    % <---- starts to repeat

您始终可以选择使用插值法构建任意数量颜色的其他颜色图之一。有关受支持的列表,请参阅 doc colormap

同样,您可以在指定数量的停止点之间使用相同的线性插值技术构建自己的颜色图。

例如,jet 颜色图是通过通过一系列 9 个端点构造的,如 here 所示,在它们之间使用线性插值。 hsv 颜色图以类似的方式构建,只是它在 hue 空间而不是在 RGB 中进行插值。 Here 是另一个示例,展示了如何使用红白蓝端点构建自定义发散颜色图。

【讨论】:

    【解决方案2】:

    lines 颜色图只有 7 种独特的颜色(正如您已经发现的那样)。
    如果您需要超过 7 种独特的颜色,则必须自己创建地图。

    一个选项是使用rand

    >> rCmap = rand( n, 3 ); % create a random map with n colors - usually unique.
    

    【讨论】:

      猜你喜欢
      • 2010-10-20
      • 2010-11-13
      • 2011-03-09
      • 2018-10-23
      • 2011-10-12
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多