Как указать метки с разными типами точек в Gnuplot? - PullRequest
3 голосов
/ 13 февраля 2011

Допустим, у меня есть данные, которые я бы хотел построить в файле "animals.txt":

cat 5.2 1.0
cat 5.4 1.3
cat 5.2 1.2
dog 3.8 1.1
dog 3.5 1.5
dog 3.6 1.3
giraffe 1.3 9.7
giraffe 1.5 9.0
giraffe 1.4 9.9

Я могу создать точечный график с метками, используя:

plot "animals.txt" u 2:3:1 w labels

Я также могу изменить стиль каждой точки, используя что-то вроде:

plot "animals.txt" u 2:3 w points pointtype 3

Вместо использования меток (которые могут перекрываться), возможно ли, чтобы точки использовали разные типы точек или цвета для каждой категории?(Например, «cat» будет красным цветом, используя pointtype 3, «dog» будет синим цветом, используя pointtype 4 и т. Д.)

Я мог бы использовать «переменную lc» и заменить столбец меток цветами,но в файле, с которым я работаю, слишком много разных ярлыков, чтобы я мог это легко сделать.

1 Ответ

2 голосов
/ 13 февраля 2011

Я не думаю, что есть способ сделать это напрямую.

Однако, простое решение - это использовать интерфейс gnuplot для awk.Затем вы можете построить 3 отдельных графика, по одному для каждого животного.

plot "<awk '{ if($1 == \"cat\") print $2,$3  }' animals.dat" u 1:2 w points title "cat", \
     "<awk '{ if($1 == \"dog\") print $2,$3  }' animals.dat" u 1:2 w points title "dog", \
     "<awk '{ if($1 == \"giraffe\") print $2,$3  }' animals.dat" u 1:2 w points title "giraffe"

Поскольку единственная разница между каждой строкой - это имя животного, вы, вероятно, могли бы написать это лучше, но выидея,

Том

...