在脚本 bash 中,这就是我所做的:
rtl_power_fftw -f 144100000:146100000 -b 500 -n 100 -g 350 -p 0 -e 1m -q -m plot
然后,我解析met文件并将.met文件的内容(bin数、扫描数等)与两个变量链接:nb_bins和nb_scans。
我将瀑布创建为 png 图像:
gnuplot -persist << EOF
plot 'plot.bin' binary array=${nb_bins}x${nb_scans} format='%float' with image
set term png
set output 'plot.png'
replot
set term wxt
EOF
问题是我的plot.png图像在我的代码(bash script.sh)的第一次启动期间被修改,但是随后,我的代码使用crontab自动运行 * * * * * /my/directory/script.sh 和然后更新图像,但不包含任何内容(大小为 0 字节)。虽然我的文件plot.met和plot.bin刷新没有任何问题。
我已经尝试了不同的事情:使用 gnuplot -e "" 而不是 gnuplot persist,没有设置术语 wxt,尝试 crontab 的不同时间,终止 gnuplot 进程,但还没有任何效果,我没有任何其他想法。非常感谢您的帮助!
在不知道你的详细安排的情况下,这里有一个让 gnuplot 无限循环运行的建议(你可以通过按
x
来停止)。我的默认终端也是wxt
。
示例脚本将每秒使用一些随机因素和随机颜色绘制一个函数,仅用于说明目的。将其替换为您的绘图命令。
我不确定您是否需要 PNG 来做其他事情,或者只是在 wxt 终端中显示图形是否就足够了。
实际上,我在实验室中有一个简单的设置,其中程序每分钟将温度和湿度附加到每日文件中。 我完全独立地运行 gnuplot,并让它每分钟显示文件的内容。
不确定这是否能解决您的问题。
脚本:
### endless loop for replotting after some waiting time
reset session
stop = 0
bind x "stop=1"
f(x) = sin(x)/x
while (!stop) {
set title strftime("%Y-%m-%d %H:%M:%S",time(0))
b0 = rand(0)+1
plot f(x*b0) w l lw 3 lc rgb 0x1000000*rand(0)
pause 1 # number of seconds
}
### end of script
结果:(wxt终端截图)