首先,定义color map 或使用现有的。例如。名为turbo 的那个与所描述的非常相似。
在highlight 函数中,可以通过在'NodeColor' 参数后提供一个RGB 三元组来设置节点的颜色。例如,这会将节点设置为红色:
highlight(V, [i], 'NodeColor', [1 0 0]);
让我们将选择的颜色图存储在一个变量中,并使用一种智能的矩阵索引方式来创建一个N×3 大小的矩阵,其中包含sdc 向量中每个数据点所需的颜色。
cm = turbo;
sdc_colors = cm(round(normalize(sdc, 'range', [1, size(cm, 1)])), :);
第二行的解释如下:
- 首先,
size函数返回地图中的颜色数量
- 创建从 1 到上述数字的范围(例如
[1,255])
- 输入数据经过标准化以涵盖此动态范围 (
normalize)
- 规范化的值被四舍五入为整数以成为有效的索引值
- 颜色图 (
cm) 使用此向量作为第一个索引,: 作为第二个参数进行索引,这会产生一个 N×3 矩阵,其中填充了每个数据点的适当颜色值。李>
创建所需颜色的矩阵后,可以在 for 循环中使用适当的索引调用它。所以完整的代码是:
cm = turbo;
sdc_colors = cm(round(normalize(sdc, 'range', [1, size(cm, 1)])), :);
for i=1:size(sdc,1)
highlight(V, [i], 'NodeColor', sdc_colors(i, :));
end