我找到了一个答案here关于使用带有点的标签,但只适用于带有标签的1列,而为了绘制(x,y)以及我必须使用的点2. / p>
所以我需要plot "data.txt" using ($1):($2):1:2 with labels, "data.txt" using 1:2
的一些内容,其中($1):($2):1:2
是(x):( y)图像上点的坐标,1:2是标签,除了没有'因为它不是一个有效的语法,因此只有第一个值被绘制在正确的位置。
嗯,我想我可以使用类似plot "data.txt" using ($1+2):($2+2):1 with labels, "data.txt" using ($1+10):($2+2):2 with labels, "data.txt" using 1:2
之类的东西来手动设置间距,但该死的是丑陋/低级/ hackish / bad /等。
答案 0 :(得分:4)
怎么样:
set key off
get_point(x,y) = sprintf("(%.0f,%.2f)", x, y)
offset(y) = (y<0.5) ? (y - 0.05) : (y + 0.05)
plot [-1:6] "-" u ($1):(offset($2)):(get_point($1, $2)) with labels, "-" u 1:2 w l
0 0.20323
1 0.19147
2 0.50213
3 0.17599
4 0.07732
5 0.66897
e
0 0.20323
1 0.19147
2 0.50213
3 0.17599
4 0.07732
5 0.66897
e
它的作用:
使用get_point
宏,您可以轻松地形成一个字符串,它将是您的x和y坐标。 offset
功能只是将标签移动一点距离曲线。如果数据具有特定形式(如本例中全局平均值为0.5),这可能很有用
当然,如果您使用数据文件而不是在绘图文件中包含数据,则脚本看起来更好。