Come rendere i punti di un colore quando una terza colonna è uguale a zero, e un altro colore altrimenti, in Gnuplot?

Devo variare il colore del punto per una riga di valori in base al colore in una colonna. I dati:

# xyz 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 trovato qui: https://stackoverflow.com/a/4115001 non funzionerà abbastanza.

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

Questo è probabilmente vicino a quello che vuoi:

 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 

Potresti fare un ulteriore 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 differenziazione tra zero e non zero importa.

Puoi regolare la tavolozza tramite

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