Способ сделать это можно с помощью awk .
Используя файл данных Data.csv
:
5.4452 4.6816 blue
1.2079 9.4082 red
7.4732 6.5507 red
2.3329 8.2996 red
3.4535 2.1937 green
1.7909 2.5173 green
2.5383 7.9700 blue
и этот скрипт:
set pointsize 3
plot "< awk '{if($3 == \"red\") print}' Data.csv" u 1:2 t "red" w p pt 2, \
"< awk '{if($3 == \"green\") print}' Data.csv" u 1:2 t "green" w p pt 2, \
"< awk '{if($3 == \"blue\") print}' Data.csv" u 1:2 t "blue" w p pt 2
вы получаете этот график:
Что делает awk, это просто проверяет третий параметр файла данных и печатает только строку, если она имеет какое-то значение: как красный или синий.
Вы также избавитесь от палитры с помощью градиента.
Сценарий можно улучшить, используя gnuplot iterations .