3

有没有办法控制颜色scatter3

在我的聚类问题中,我有 2 个向量 A= 80x3 包含我的数据并index包含集群的索引。例如,数据点A(i,1) A(i,2) A(i,3) 属于集群index(i)

我根据scatter3(A(:,1),A(:,2),A(:,3),50,index','filled')它们的集群绘制所有数据点,但我想为每组点指定颜色。

我尝试了帮助,但没有成功。

4

1 回答 1

4

你快到了。scatter3提供了几个选项来定义配色方案(请参阅此处的文档)。一种是像您现在所做的那样使用标量进行索引。在这种情况下,着色方案是自动的。另一种选择是使用表示 RGB 颜色的三元组值。

例如,对于三种颜色,您可以定义自定义颜色图cmap

color_1 = [1 0.2 0.4];
color_2 = [0.34 0.65 0.87];
color_3 = [0.5 0.5 0.5];

cmap = [color_1; color_2; color_3];

然后INDEX_color根据您的实际索引创建一个 (Nx3) 矩阵

INDEX_color = cmap(INDEX,:);

对于更多组,您可以INDEX_color根据内置颜色图自动创建。将在颜色图之后cmap = colormap(jet(10));生成一个10x3RGB 矩阵。jet

下图

在此处输入图像描述

由这段代码给出

A = [rand(20,3); rand(20,3)+1; rand(20,3)+2 ];
INDEX = [ones(20,1); ones(20,1)+1; ones(20,1)+2 ];

color_1 = [1 0.2 0.4];
color_2 = [0.34 0.65 0.87];
color_3 = [0.5 0.5 0.5];

cmap = [color_1; color_2; color_3];

INDEX_color = cmap(INDEX,:);

scatter3(A(:,1), A(:,2), A(:,3), 50, INDEX_color, 'filled')
于 2013-09-06T12:03:47.533 回答