Gnuplot绘制带变化距离的标记点

Gnuplot绘制带变化距离的标记点,plot,label,gnuplot,Plot,Label,Gnuplot,我试图从一个包含时间戳和注释的文件中绘制一些数据,作为字符串和各种其他数据 到目前为止,我们正在做的是将所有评论都绘制成随时间变化的标签,但我正在寻找某种智能间距,这样评论就不会重叠 我也在寻找一种过滤评论的方法。我得到了另一个专栏,指定评论是否应该隐藏。我将此状态用于: 它正在过滤数据点,但如果Statment为true,它将显示0,而不是在($6)中显示字符串 如果距离太小,我想我可以通过手动操作时间来处理间距,但是一个工作的过滤器将是一个很大的帮助 以前有人处理过这种问题吗?我在下面添加了

我试图从一个包含时间戳和注释的文件中绘制一些数据,作为字符串和各种其他数据

到目前为止,我们正在做的是将所有评论都绘制成随时间变化的标签,但我正在寻找某种智能间距,这样评论就不会重叠

我也在寻找一种过滤评论的方法。我得到了另一个专栏,指定评论是否应该隐藏。我将此状态用于:

它正在过滤数据点,但如果Statment为true,它将显示0,而不是在($6)中显示字符串

如果距离太小,我想我可以通过手动操作时间来处理间距,但是一个工作的过滤器将是一个很大的帮助

以前有人处理过这种问题吗?我在下面添加了一张到目前为止我进步的照片

我感谢你的建议。多谢各位


为了使标签不重叠,用
旋转-60将标签向下旋转并移开怎么样

默认的底部边距会将它们截断,在这种情况下,您需要使用类似于
set bmargin 10
的内容来扩展它

要有条件地绘制,当条件为false时,需要生成数值错误,而不仅仅是零值。最简单的方法可能是:

plot 'data' using $1:0:($7==0?$6:NaN)
尽管在较旧的脚本中,人们经常看到用于生成
NaN
1/0
,如:

plot 'data' using $1:0:($7==0?$6:1/0)
可以设置显式标签,而不是条件打印,如中所示:

set xdata time
set timefmt "%d/%m/%y\t%H%M"
set format x "%d/%m\n%H:%M"
set xrange [ "1/6/93":"1/11/93" ]
set grid
set style data fsteps
set bmargin 10
set label 1 'Look at the spike here' at '01/10/93',0.05 rotate by -45 point
# https://github.com/gnuplot/gnuplot/blob/master/demo/timedat.dat
plot 'timedat.dat' using 1:4 notitle
产生

要使用
表达式中的文本字段,必须使用
stringcolumn
函数。举个例子,比如

plot 'data' using $1:(0):($7==0 ? stringcolumn(6) : " ") with labels

应该适用于问题的过滤方面。

不知何故,gnuplot不喜欢字符串输出与条件打印相结合。使用明确的标签是一个很好的选择,但是评论的数量可能仍然会上升。谢谢你的回复工作得很好!有了条件标签打印,间距就不再那么重要了,因为注释的数量大大减少了。非常感谢你的帮助!
plot 'data' using $1:(0):($7==0 ? stringcolumn(6) : " ") with labels