2011-11-22 10 views
5

Od jakiegoś czasu szukałem google, ale nie mogłem znaleźć rozwiązania dla mojego problemu. Jestem użytkownikiem amator Matlab i chciałbym stworzyć rozrzutu 3D, za to mam matrycę zawierającą kilka punktów w przestrzeni 3D:Wykres rozrzutu 3D kolorowy według wartości Z

>> size(A) 

    ans = 

     2511   3 

udało mi się stworzyć rozrzutu 3D przy użyciu funkcji „scatter3” ale teraz utknąłem trochę na kodowaniu kolorów punktów 3D.

scatter3 (A (:, 1), A (:, 2), A (: 3));

To będzie wykreślić dane, ale teraz chciałbym dodać kodowanie kolorów w oparciu o z-Wartość ... Kolory samym sobą nie mają znaczenia zbyt wiele. Może to być spektrum tęczowe, widmo temperaturowe czy cokolwiek innego. Chciałbym je pokolorować, aby odróżnić z-wartości punktów.

Czy ktoś może mi w tym pomóc? Dziękuję Ci!

+0

Moja odpowiedź jest prosta z docs, przy okazji: http://www.mathworks.com/help/techdoc/ref/scatter3.html –

Odpowiedz

7

Musisz podać kilka argumentów do scatter3.

scatter3(X,Y,Z,S,C); 

S pozwala określić obszary, dla każdej markerów (wektorem) lub jednego obszaru dla wszystkich znaczników, podczas C pozwala określić kolor. Jeśli C jest wektorem, jego wartości będą liniowo odwzorowane na bieżącą mapę kolorów. Aby zmienić mapę kolorów, zadzwoń na przykład: colormap(jet). Zobacz dokumentację na stronie colormap.

Przepraszam, jeśli to jest mylące. Krótka wersja:

scatter3(A(:,1),A(:,2),A(:,3),9,A(:,3)); 
colormap(jet); %# or other colormap 
+0

Dziękujemy, że działa dobrze ... ja jakoś tylko próbował zmienić rozmiar, ale nie przeszedł argumentu koloru ... głupi mnie ... dziękuję! – evident