1

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

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

4

1 回答 1

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、标题等),您可以应用“每个”选项来选择特定的行(跟踪)。例如 "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
于 2013-04-25T12:06:36.597 回答