从GNUplot中的单个文件确定多个最大值

从GNUplot中的单个文件确定多个最大值,gnuplot,labels,Gnuplot,Labels,我有一个来自示波器的单列文件,可以读取电压与样本数的关系,我想在gnuplot中绘制轨迹,并标记信号中的两个最大值。第一个很容易从GPVAL_DATA_Y_MAX中找到,如下所示: set term png 1 small set output "~/path/to/outputfile.png" max_y = GPVAL_DATA_Y_MAX set label 1 gprintf("Max = %g", max_y) at x, y plot "~/path/to/myfile" w li

我有一个来自示波器的单列文件,可以读取电压与样本数的关系,我想在gnuplot中绘制轨迹,并标记信号中的两个最大值。第一个很容易从GPVAL_DATA_Y_MAX中找到,如下所示:

set term png 1 small
set output "~/path/to/outputfile.png"
max_y = GPVAL_DATA_Y_MAX
set label 1 gprintf("Max = %g", max_y) at x, y
plot "~/path/to/myfile" w lines lt rgb "black"

这是我编写的一个较大宏的片段,用于同时绘制多个文件中的多个跟踪。我可以标记我的第一个最大值,但我似乎找不出一个好方法来标记数据中的第二个峰值。

你知道最大值出现在哪个范围内吗?然后,您可以使用不同的范围调用两次
stats
。在任何情况下,都应该使用该命令从数据中提取值。如果您不知道最大值出现的大致范围,您应该使用python脚本进行计算。我可以对数据进行初始绘图,以找到大致范围,然后进行调整。问题是每个文件都有不同的范围,因此我需要绘制每个文件,然后手动调整范围参数,这似乎效率低下。是的,这效率低下。但答案是:使用外部脚本来计算最大值位置,gnuplot不是一个数字工具。例如,您可以编写一个python脚本来进行计算,并将分隔的位置空间写入stdout。然后,从gnuplot执行类似于
pos=system(“pythonmyscript.py”)的操作然后继续使用
pos
中的值。。。这是一个python脚本!谢谢你给我指出了正确的方向。我认为这是相关的(可能是重复的?):顺便说一句,我同意外部代码更适合这个任务,链接的答案更像是“好奇”,而不是其他任何东西。你知道最大值出现在哪个范围吗?然后,您可以使用不同的范围调用两次
stats
。在任何情况下,都应该使用该命令从数据中提取值。如果您不知道最大值出现的大致范围,您应该使用python脚本进行计算。我可以对数据进行初始绘图,以找到大致范围,然后进行调整。问题是每个文件都有不同的范围,因此我需要绘制每个文件,然后手动调整范围参数,这似乎效率低下。是的,这效率低下。但答案是:使用外部脚本来计算最大值位置,gnuplot不是一个数字工具。例如,您可以编写一个python脚本来进行计算,并将分隔的位置空间写入stdout。然后,从gnuplot执行类似于
pos=system(“pythonmyscript.py”)的操作然后继续使用
pos
中的值。。。这是一个python脚本!谢谢你给我指出了正确的方向。我认为这是相关的(可能是重复的?):顺便说一句,我同意外部代码更适合这个任务,链接的答案更像是一种“好奇”,而不是其他任何东西。