0

我正在使用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
4

2 回答 2

1

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

一种选择是使用rand

>> rCmap = rand( n, 3 ); % create a random map with n colors - usually unique.
于 2013-08-05T05:38:52.873 回答
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 个端点构建的在它们之间使用线性插值。颜色图hsv以类似的方式构建,只是它在色调空间而不是在 RGB 中进行插值。是另一个示例,展示了如何使用红白蓝端点构建自定义发散颜色图。

于 2013-08-05T05:39:58.587 回答