gnuplot:是否可以在每个点之外绘制(x,y)坐标?

时间:2011-07-27 03:25:05

标签: charts plot gnuplot

我找到了一个答案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 /等。

1 个答案:

答案 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),这可能很有用 当然,如果您使用数据文件而不是在绘图文件中包含数据,则脚本看起来更好。