Как сделать точки одним цветом, когда третий столбец равен нулю, а другой цвет - в Gnuplot?

Мне нужно изменить цвет точки для строки значений на основе цвета в одном столбце. Данные:

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

Цвет должен быть одним значением, если столбец равен нулю, а другой цвет, если значение в третьем столбце отличное от нуля.

Итак, я предполагаю:

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

как показано здесь: qaru.site/info/323664/... не будет работать.

В приведенных выше примерах данных команда gnuplot предоставляет три разных цвета вместо двух, которые я ищу.

Ответ 1

Это, вероятно, близко к тому, что вы хотите:

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

Вы можете сделать еще один шаг и удалить "шум":

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

если имеет место только дифференциация между нулем и ненулевым значением.

Ответ 2

Вы можете настроить палитру на

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