2011-12-19 26 views
6

Ho uno spazio 2D in cui è definito un valore di funzione (è possibile considerarlo come una varietà). Ora ho tracciato il valore della funzione usando il contorno e ho cambiato la mappa dei colori in qualcosa di più morbido del jet. Finora sembra abbastanza buono.Come variare il colore della linea di una trama matlab (come colormap)?

Ora voglio disegnare una linea che rappresenta lo stato nel tempo nel mio spazio. Ciò è possibile anche utilizzando il comando plot. Ma voglio ancora qualche miglioramento: c'è uno stato aggiuntivo che è nascosto per ora (valore 0 ... 50). Vorrei che il colore della linea cambiasse in base a questo stato nascosto. Quindi, in un certo senso, applicare una mappa di colori separata alla linea tracciata da plot come ad esempio in un diagramma a cascata.

Questo (o qualcosa di simile) è possibile usando matlab?

Grazie

risposta

2

Date un'occhiata alla funzione cline.m da scambio di file, penso che sia esattamente quello che ti serve.

+0

Questo farà ciò che vuoi, assumendo che tu voglia l'ombreggiatura piatta. Inoltre non è carino. – Nzbuu

7

Se si desidera utilizzare l'ombreggiatura interpolata o modificare i colori con la mappa dei colori, quindi si desidera tracciare i dati come trama e impostare la proprietà edgecolor in modo appropriato. Nota che per tracciarlo come una mesh, dovrai duplicarlo in modo che abbia una dimensione di almeno 2 in ogni direzione.

h = mesh([X(:) X(:)], [Y(:) Y(:)], [Z(:) Z(:)], [C(:) C(:)], ... 
    'EdgeColor', 'interp', 'FaceColor', 'none'); 

Si consiglia inoltre di esaminare la proprietà MeshStyle, se si desidera tracciare più linee contemporaneamente.

Questa soluzione è anche molto più bella di quella utilizzata in cline perché crea solo un oggetto grafico, anziché n.

+0

Non sono sicuro, se ho capito bene. Pensavo che il comando 'mesh' avrebbe prodotto trame 3D. Voglio che sia in 2D (proiettato dall'alto). Quali valori shold ho impostato per le coordinate Z? –

+1

Imposta la coordinata Z su 0 e usa 'view (2)' per tornare al punto di vista XY standard. – Nzbuu

+0

Inoltre, la funzione collegata a @Adrian implementa esattamente questo. – Nzbuu

2

Posso raccomandare il Colored line entry dallo scambio di file. Ha un buon feedback e usa la mappa dei colori per definire i colori visualizzati, l'ho usato con successo su un numero di progetti.

+0

Come menzionato @Nzbuu, questo è più carino di [cline.m] (http://www.mathworks.com/matlabcentral/fileexchange/3747-cline-m), proprio perché usa una singola curva contigua (tramite ['mesh '] (http://www.mathworks.com/help/matlab/ref/mesh.html)) anziché [' line'] (http://www.mathworks.com/help/matlab/ref/line. html). Ciò lo rende anche più efficiente se hai molti punti nella tua linea. –

Problemi correlati