我是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
但它报告“此样式没有足够的列”。我真的不知道冒号周围的数字是什么意思,虽然我在别人的代码中到处看到它们。
答案 0 :(得分:16)
您可以使用以下命令执行此操作:
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位置取自第2列。 y位置取自第3列。标签文本取自第一列,即我们获得using 2:3:1
的位置。它实际上比它更强大(语法将允许你一起添加2列以获得x或y位置),但解释所有这些应该留给另一个问题。
答案 1 :(得分:4)
由于您使用的是csv文件,因此应设置分隔符:
set datafile separator ','
另外,我认为这是你要做的事情:
plot 'infile' using 2:3, 'infile' 2:3:1 with labels offset 1