2016-06-13 54 views
0

这是基本的,但我努力给scatter3一个色彩映射。我这样做:将色图传递给scatter3

scatter3(gesture_x(:,1),gesture_x(:,2),gesture_x(:,3),1,colors(labels_x)) 

colors = ['c','y','m'...]labels_x = [1 3 3 2 ..]

如果有人能指出我在做什么错那将是巨大的。

回答

0

不能使用单字符颜色规范来指定要用于每个点的颜色数组。 MATLAB实际上将['c', 'y', 'm']解释为'cym',这不是一个有效的颜色,所以它会出错。

如果你看一下the documentation,你需要以三种方式之一,以指定的颜色:

  • RGB值为每个数据点(一个N x 3数组,其中列有红色,绿色和蓝色分量) ,
  • 单一颜色('r''red'[1 0 0])将被施加到所有

  • 许多这将使用clims映射到轴的颜色映射表。

标记颜色,指定为颜色字符串,一个RGB行向量,RGB值的三列的矩阵,或矢量。对于RGB行向量,使用三元素行向量,其元素指定颜色的红色,绿色和蓝色分量的强度。强度必须在[0 1]的范围内。如果散点图中有三个点,并且要将颜色作为色标映射的索引,请将C指定为三元素列向量。

% Random RGB value for each point 
colors = rand(size(gesture_x, 1), 3); 

% One color for everything 
colors = 'r'; 
colors = 'red'; 
colors = [1 0 0]; 

% Random values mapped to the axes colormap 
colors = rand(size(gesture_x,1), 1);