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

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

# 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

как найдено здесь: https://stackoverflow.com/a/4115001 не совсем будет работать.

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

Ответы [ 2 ]

26 голосов
/ 04 января 2012

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

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

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

1 голос
/ 04 января 2012

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

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