Подтвердить что ты не робот

Помеченные данные gnuplot

Я новичок в gnuplot, и мне трудно найти смысл некоторых команд. Я хочу построить файл csv, где строки - это точки данных, а три столбца представляют собой метку данных, значение x и значение y соответственно. Мне нужен второй столбец по оси x, а третий столбец по оси y и первый столбец - метка, прикрепленная к этой точке. Вот данные

ACB,  0.0000000,  0.0000000000
ASW,  1.0919705, -0.0864042502
CDX,  0.0000000,  0.0000000000
CEU, -0.4369415, -0.5184317277
CHB, -0.4686879,  0.7764323199
CHD,  0.0000000,  0.0000000000
CHS, -0.4141749,  0.7482543582
CLM, -0.2559306, -0.2535837629
FIN, -0.5004242, -0.2108050200
GBR, -0.4140216, -0.5132990203
GIH,  0.0000000,  0.0000000000
IBS, -0.4928541, -0.5812216372
JPT, -0.4821734,  0.7263450301
KHV,  0.0000000,  0.0000000000
LWK,  1.4515552, -0.0003996165
MKK,  0.0000000,  0.0000000000
MXL, -0.4019733, -0.0484315198
PEL,  0.0000000,  0.0000000000
PUR, -0.2165559, -0.3173440295
TSI, -0.3956957, -0.4549254002   
YRI,  1.5555644, -0.0202297606

Я пробовал такие вещи, как

plot 'infile' using 2:2 with labels, 'infile' using 1:2

но он сообщает "Недостаточно столбцов для этого стиля". Я не знаю, что означают цифры вокруг двоеточий, хотя я вижу их везде в коде других.

4b9b3361

Ответ 1

Вы можете сделать это с помощью следующей команды:

set datafile sep ','
plot 'test.dat' u 2:3:1 w labels point offset character 0,character 1 tc rgb "blue"

Часть вашего замешательства, вероятно, является сокращенной записью gnuplot для многих вещей. Например, в приведенной выше команде u означает using, а w обозначает with и tc означает textcolor. В общем случае gnuplot позволяет сократить команду до кратчайшей уникальной последовательности символов, которая может быть использована для ее идентификации. поэтому with может быть w, wi, wit, а gnuplot распознает любой из них, так как никакие другие параметры печати не начинаются с w.

Цифры после спецификатора использования - это столбцы в вашем файле данных. Итак, здесь позиция x метки взята из второго столбца. Позиция y взята из 3-го столбца. И текст ярлыка берется из 1-го столбца, где мы получаем using 2:3:1. Это на самом деле намного более мощное, чем это (синтаксис позволит вам добавить 2 столбца вместе, чтобы получить, например, позицию x или y), но объяснение всего этого, вероятно, должно быть оставлено для другого вопроса.

Ответ 2

Поскольку вы используете файл csv, вы должны установить разделитель:

set datafile separator ','

Кроме того, я думаю, что это то, что вы пытаетесь сделать:

plot 'infile' using 2:3, 'infile' 2:3:1 with labels offset 1