2012-12-18 19 views
5

Vorrei tracciare un semplice grafico a dispersione in MATLAB, con colori marcatore che variano da un capo all'altro dello spettro all'altro (per esempio rosso, arancione, giallo .... blu, viola).Come si crea un grafico a dispersione con i colori dei marcatori graduati in MATLAB?

miei dati a confronto la quantità di acqua in un fiume con la qualità delle acque, nel corso del tempo (3 semplici colonne: tempo, quantità, qualità). Vorrei tracciare il diagramma a dispersione x, y di quantità vs qualità, ma con il colore che progredisce nel tempo, in modo che sia possibile vedere la progressione della qualità nel tempo.

ho bisogno di produrre molti grafici di questo tipo, quindi se riesco a trovare un pezzo di codice che funziona per un certo periodo di set di dati, che sarebbe veramente utile.

Molte grazie in anticipo per aiutare un novizio Matlab!

risposta

10

È possibile utilizzare l'argomento colore della scatter

Se i dati sono già ordinati nel tempo che semplicemente utilizzare:

% let n be the number of points you have 
cmp = jet(n); % create the color maps changed as in jet color map 
scatter(x, y, 10, cmp, 'filled'); 

In caso contrario è necessario risolvere prima i dati:

[time, idx] = sort(time); 
x = x(idx); 
y = y(idx); 
cmp = jet(n); % create the color maps changed as in jet color map 
scatter(x, y, 10, cmp, 'filled'); 
+1

Brillante! Grazie mille per il vostro aiuto, questo è molto più semplice di altri codici per fare cose simili che stavo cercando di capire, ed esattamente ciò di cui avevo bisogno. – user1913275

2

Il modo più semplice per colorare un grafico a dispersione con una variabile aggiuntiva è semplicemente passarlo come argomento "colore". Diciamo che sono x, y, e time (dove il tempo è un vettore numerico. Se il tempo contiene stringhe di data, invece, chiamano datenum su di esso, in primo luogo). Quindi puoi scrivere

scatter(x,y,[],time,'filled') 

Gli assi della barra dei colori ti mostreranno in quale momento del tempo corrisponde un determinato colore. È importante sottolineare che questo farà avanzare correttamente i colori anche nel caso in cui il tempo tra le misure non sia uniforme.

/a parte: La mappa di colori di default è jet, che è piuttosto male per la visualizzazione transizioni fluide, vi consiglio di scaricare un perceptually improved colormap dal File Exchange. Per utilizzarlo per impostare la mappa colori, è possibile chiamare

cmap = pmkmp(length(time)); 
colormap(cmap); 
Problemi correlati