Im trying to plot n [X,Y,Z] dots in 3d with their colors given by C which is a nx3 matrix describing the RGB colors for each dot (graded colors).... but its not working!!!!
scatter3(X,Y,Z,S,C, 'filled')
any suggestions?

 采纳的回答

Have a look at the example in the help:
[x,y,z] = sphere(16);
X = [x(:)*.5 x(:)*.75 x(:)];
Y = [y(:)*.5 y(:)*.75 y(:)];
Z = [z(:)*.5 z(:)*.75 z(:)];
S = repmat([1 .75 .5]*10,numel(x),1);
C = repmat([1 2 3],numel(x),1);
scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled')

4 个评论

in my case X is [n x 1] and C is [n x 3], that's where Im stuck
You have to set up each row of C to give the color you want for that data marker. For example, if you want marker #42 to have magenta, you need to do this:
C(42, :) = [1 0 1]; % Row 5 for marker #5 is magenta.
Same for all the other markers. So . . . what did you actually do?
ok great... found the problem. I defined each column of C within the range 0-255, and this is what was making the plotter fail. Once I normalized my colors dividing by 255 it all worked nice. thanks!!!!!!!
Yes, any function in MATLAB that takes a 3 element numerical array for color must be in the range 0-1 instead of 0-255. If you have 255 numbers, for example determined them from some artwork in Photoshop of wherever, then you can just divide by 255
color255 = [100, 150, 240];
myColor = color255 / 255; % Then use this array in scatter() or wherever...

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Scatter Plots 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by