Gnuplot:具有交替偏移的数据点标签(高于/低于数据点)

标签 gnuplot

我正在某个数据集中绘制几条线。几个数据点(下例中的第 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

但这也没有用(没有明显的效果)。

下面是当前版本的示例(有几条绘图线,我尽量使代码示例简短)。 感谢任何帮助...

enter image description here

最佳答案

尝试用every将数据点分成两组:

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)) every 2::0 with labels nopoint offset char 1,-2 notitle,\
"data.csv" using 0:13:(sprintf("(%d, %d)", $1, $12)) every 2::1 with labels nopoint offset char 1,2 notitle,\
"data.csv" using 0:6 with lines lt 7 lw 2

那么每个奇数数据点都有一个正的偏移量;每个偶数数据点都有一个负偏移量(或奇数 <--> 偶数 ;-) )


注意:如果您在逗号分隔的绘图语句中重复使用相同的源(文件),您可以使用“”而不是重复“data.csv”。

关于Gnuplot:具有交替偏移的数据点标签(高于/低于数据点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37647266/

相关文章:

plot - 如何在图形上绘制卡方 - gnuplot

3d - 如何根据点的类别制作 3D 密度图

emacs - 如何使用 emacs 允许在长 gnuplot 命令中进行注释?

gnuplot - 在多图模式下用鼠标旋转 3D 图

javascript - 如何使嵌入在 HTML 中的 SVG 加载其 xlink :href dependencies?

gnuplot - x 轴上的标签始终位于绘图之外

pdf - gnuplot - pdf 终端 - 设置 unicode 字符(太阳质量符号/odot)

gnuplot 多个图形不是交互式的

svg - Gnuplot:线型版本 5.0 补丁级别 3

plot - 多行的 Gnuplot xticlabels