我正在绘制某个数据集中的几条线。其中有几个数据点(在下面示例中的第13列)是特殊的,我希望它们用圆圈标记并打上标签(标签在第12列中)。
plot "data.csv" using 0:13 with circles lt 3 fs transparent solid 0.3 noborder notitle,\
"data.csv" using 0:13:(sprintf("(%d, %d)", $1, $12)) with labels nopoint offset char 1,-2 notitle,\
"data.csv" using 0:6 with lines lt 7 lw 2
我已经想出如何做到这一点。不幸的是,有时标签会重叠在一起,这使得它们难以阅读。
我该如何让标签交替地出现在数据点上方/下方?我尝试定义一个在-1/1之间切换的函数,但未能成功。我还尝试通过添加偏移量来使其随机化。
"data.csv" using 0:13:(sprintf("(%d, %d)", $1, $12)) with labels nopoint offset char 1,int(-5*(rand(0))) notitle
但是这也没有起作用(没有可见的效果)。
下面是一个例子,展示当前版本的样子(有几条更多的绘制线,我尝试保持代码简洁)。非常感谢任何帮助...