2012-01-03 6 views
17

Devo variare il colore punto per una riga di valori in base al colore in una colonna. I dati:Come rendere i punti di un colore quando una terza colonna è uguale a zero, e un altro colore altrimenti, in Gnuplot?

# x y z 
1, 3, 0 
1, 5, 6 
3, 5, 2 
4, 5, 0 

Il colore dovrebbe essere un valore se la colonna è zero e un colore diverso se il valore nella terza colonna è diverso da zero.

Quindi, sto assumendo:

plot "./file.dat" u 1:2:3 with points palette 

come si trova qui: https://stackoverflow.com/a/4115001 non funzionerà affatto.

Nei dati di esempio sopra, il comando gnuplot fornisce tre colori diversi invece dei due che sto cercando.

+0

JessicaB, si prega di segnare la migliore risposta. Grazie. :) –

+0

Condizioni più generali: http://stackoverflow.com/questions/8717805/vary-point-color-in-gnuplot-based-on-value-of-one-column –

risposta

1

È possibile regolare la tavolozza

set palette defined (-0.1 "blue", 0 "red", 0.1 "blue") 
+0

Questo mette rosso intorno a tre e blu a 0 e 6 e quindi non raggiunge l'obiettivo dell'OP. Ho costruito la tua idea, vedi sotto! – vaettchen

25

Questo è probabilmente vicino a quello che si vuole:

set palette model RGB defined (0 'red', 1 'green') 
plot[0:5][0:6] "file.dat" u 1:2:($3 == 0 ? 0 : 1) with points palette 

Si potrebbe fare un passo avanti e rimuovere il "rumore":

unset key 
unset colorbox 
plot[0:5][0:6] "file.dat" u 1:2:($3 == 0 ? 0 : 1) with points pt 7 ps 3 palette 

se solo la differenza tra zero e non zero importa.

+0

GRAZIE !!! Funziona! Apprezzo l'aiuto. – JessicaB

+6

@JessicaB: Potresti contrassegnarlo come risposta? – vaettchen

Problemi correlati