¿Cómo hacer que los puntos sean un color cuando una tercera columna es igual a cero y, de otro modo, otro color en Gnuplot?

Necesito variar el color del punto para una fila de valores basada en el color en una columna. Los datos:

# xyz 1, 3, 0 1, 5, 6 3, 5, 2 4, 5, 0 

El color debe ser un valor si la columna es cero y un color diferente si el valor en la tercera columna no es cero.

Entonces, estoy asumiendo:

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

como se encuentra aquí: https://stackoverflow.com/a/4115001 no funcionará del todo.

En los datos de ejemplo anteriores, ese comando gnuplot proporciona tres colores diferentes en lugar de los dos que estoy buscando.

Esto es probablemente cerca de lo que quiere:

 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 

Podrías ir un paso más allá y eliminar el “ruido”:

 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 

si solo importa la diferenciación entre cero y distinto de cero.

Puedes ajustar la paleta

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