2011-11-22 14 views
5

Ho cercato su Google per un po 'ma non sono riuscito a trovare una soluzione per il mio problema. Sono un utente amatoriale MATLAB e vorrei creare un grafico a dispersione in 3D, per questo ho una matrice contenente diversi punti nello spazio 3D:3D scatterplot colorato da Z-Value

>> size(A) 

    ans = 

     2511   3 

sono stato in grado di creare un grafico a dispersione 3D utilizzando la funzione "scatter3", ma ora sono bloccato per codificare a colori i punti 3D.

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

Ciò tracciare i dati, ma ora vorrei aggiungere una codifica a colori in base al valore Z ... I colori themself Non importa troppo. Potrebbe essere uno spettro arcobaleno o uno spettro di temperatura o qualsiasi altra cosa. Vorrei solo colorcode per distinguere i valori z dei punti.

Qualcuno può aiutarmi con questo? Grazie!

+0

La mia risposta è direttamente dai documenti, tra l'altro: http://www.mathworks.com/help/techdoc/ref/scatter3.html –

risposta

7

Devi fornire ulteriori argomenti a scatter3.

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

S permette di specificare le aree per ogni marcatori (con un vettore) o di una singola area per tutti i marcatori, mentre C permette di specificare il colore. Se C è un vettore, i suoi valori saranno mappati linearmente alla mappa colori corrente. Per cambiare la mappa dei colori, chiama colormap(jet) per esempio. Vedere la documentazione su colormap.

Scusa se questo è confuso. Versione corta:

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

ringraziamento che funziona bene ... in qualche modo ho provato solo a cambiare le dimensioni, ma non ho superato l'argomento dei colori ... stupido ... grazie! – evident