2010-07-12 6 views
21

Ho 6 vettori che voglio tracciare. Come posso rendere ogni trama con colori diversi (casuali)? Con il codice sotto, il grafico è limitato a un colore per tutti e sei i vettori.Matlab sceglie il colore casuale per la stampa

plot(x,y,'-rs','LineWidth',1,... 
     'MarkerEdgeColor','k',... 
     'MarkerFaceColor','g',... 
     'MarkerSize',5); 
+0

possibile duplicato di [Tracciare automaticamente linee colorate differenti in MATLAB] (http://stackoverflow.com/questions/2028818/automatically-plot-different-colored-lines-in-matlab) – gnovice

risposta

40

È possibile impostare PLOT automaticamente i colori della linea. Se tutti e 6 i vettori hanno la stessa lunghezza, è possibile inserire le coordinate x e y in matrici N-by-6 X e Y e passarle a PLOT. Un colore diverso sarà utilizzato per ogni colonna:

plot(X,Y,'-s'); %# Plots lines with square markers 

Si potrebbe anche utilizzare alcune delle built-in colormaps per generare un insieme di colori, quindi utilizzare questi quando si traccia ogni riga separatamente. Per esempio:

cmap = hsv(6); %# Creates a 6-by-3 set of colors from the HSV colormap 
for i = 1:6  %# Loop 6 times 
    plot(X(:,i),Y(:,i),'-s','Color',cmap(i,:)); %# Plot each column with a 
               %# different color 
end 
+0

grazie mille. Mi chiedo se ho per es. 21 diversi vettori, posso modificare cmap = hsv (6) in cmap = hsv (21) – Jessy

+0

@Jessy: Sì, 'hsv (N)' restituirà una mappa colori N-by-3 con un colore RGB per riga. – gnovice

+2

+1 per l'utilizzo di mappe colore. Ho scoperto che i colori puramente casuali funzionano molto male a scopo di visualizzazione - il contrasto tra i colori è spesso insufficiente e i colori troppo chiari o troppo scuri. Campionare uniformemente su una delle mappe colori standard offre combinazioni di colori molto più piacevoli e leggibili. – Kena

4

per creare una mappa colore casuale, si potrebbe fare la seguente

myMap = rand(nbColors, 3); 
for i = 1:nbColors 
    plot(X(:,i),Y(:,i),'-s','Color',myMap(i,:)); 
end 

Tuttavia, come ho detto nel mio commento alla risposta di gnovice, scegliere i colori da una mappa di colori fornisce generalmente molto combinazioni di colori più leggibili.

Problemi correlati