用标签绘制线条

时间:2013-04-25 07:23:58

标签: plot label gnuplot

有一条带有几条痕迹的情节。我想用标签绘制一条迹线。

plot "-" ls 3 notitle ,\
     "-" ls 4 title "Trace 1", \
     "-"  ls 5 title "Trace 2" ,\
     "-" with points ls 6 notitle
P1 1.5 17.962924780409974
P2 1.7 16.87322975464215
P3 1.9 15.960477502420257
P4 2.1 15.181442305531792
P5 2.3000000000000003 14.506370414707312
P6 2.5000000000000004 13.914021704740868
P7 2.7000000000000006 13.38877362790406
P8 2.900000000000001 12.918844829323474
P9 3.100000000000001 12.495160353435423
P10 3.300000000000001 12.110601416389963
e
...

如何绘制第一条曲线,以便在该点旁边显示labels P0P10

1 个答案:

答案 0 :(得分:4)

通常,当您的数据存储在文件中时,它会更容易。所以为了简短起见我在这里假设数据是从“Datafile.dat”中读取的

如果为地块使用“带标签”选项,则可以在给定位置绘制标签而不是点。

plot "Datafile.txt" using 2:3:1 with labels

“使用”的前两个参数指定(x,y)位置,而第三个参数指示标签的位置。

现在这将只显示点而不显示标签。所以我们可以添加另一个只显示点的方法,并为标签添加偏移量(0.05),这样标签就不会与点重叠:

plot "Datafile.txt" using ($2+0.05):($3+0.05):1 with labels, "" using 2:3

现在,如果要为每条迹线提供不同的选项(ls,title等),可以应用“every”选项来选择特定的线(迹线)。例如,“every :: 1 :: 1”将仅绘制第二条曲线(第一条线为“0”)。

总之,你应该对这个解决方案没问题:

plot "Datafile.txt" u ($2+0.05):($3+0.05):1 with labels notitle,\
     "" u 2:3 ev ::0::0 ls 3 "Trace 1",\
     "" u 2:3 ev ::1::1 ls 4 "Trace 2",\
     "" u 2:3 ev ::2 ls 6 notitle