colouring dots in scatter3 according z-value

plot3 gives colours according to height above the xy-plane. Is that possible with scatter3 too?

 Respuesta aceptada

Star Strider
Star Strider el 18 de Sept. de 2017
It is relatively straightforward to do what you want:
x = rand(10, 1); % Create Data
y = rand(10, 1); % Create Data
z = rand(10, 1); % Create Data
zscaled = z*10; % May Be Necessary To Scale The Colour Vector
cn = ceil(max(zscaled)); % Number Of Colors (Scale AsAppropriate)
cm = colormap(jet(cn)); % Define Colormap
figure(2)
scatter3(x, y, z, [], cm(ceil(zscaled),:), 'filled')
grid on

4 comentarios

Kate Retallick
Kate Retallick el 3 de Mzo. de 2021
This is great, thank you, been searching for something that would work for me for ages!
Star Strider
Star Strider el 3 de Mzo. de 2021
My pleasure!
(A vote would always be appreciated!)
Maria Zilidou
Maria Zilidou el 26 de Mzo. de 2022
what happens if x,y,z are matrices? for example x,y,z are 10x10 matrices. how do you asign colours according to the value of z using scatter3?
Star Strider
Star Strider el 26 de Mzo. de 2022
I would create them as vectors using the (:) subscript notation:
scatter3(x(:), y(:), z(:), [], z(:))
or something similar and appropriate.
.

Iniciar sesión para comentar.

Más respuestas (2)

Weia Reinboud
Weia Reinboud el 18 de Sept. de 2017

2 votos

Yes I'd read that. But that means every dot has that color C, not that colors vary by the value of z. Or am I wrong?

1 comentario

You can specify the color as a linear function of z:
x = 1:10;
z = fliplr(x);
scatter3(x,x,z,2,z)

Iniciar sesión para comentar.

Weia Reinboud
Weia Reinboud el 18 de Sept. de 2017

0 votos

Excellent, it works! It does not look as code I could ever having been able to find by myself. Thank you very much.

Categorías

Etiquetas

Preguntada:

el 18 de Sept. de 2017

Comentada:

el 26 de Mzo. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by