树莓派上的 Gnuplot ,绘制到 X11 终端,如何重复使用同一个 X 窗口?



我成功地在RPi上绘制到Python中的X窗口。

python代码收集数据,定期将其附加到CSV文件,并使用以下内容绘制CSV文件: ("设置终端 GIF 中型 1100,600 背景"#e7e7ff"") ('设置输出 "/home/pi/pp/plotdata.gif"') 这会定期覆盖 gif 和 FTP gif 文件。 该 gif 文件被 FTP 到一个网络主机,该主机引用了 HTML 源代码中的绘图图像。 一切都很好。

问题: 我还想从 Python 程序本地显示绘图。我可以使用"设置终端 X11"来做到这一点,但是每个周期通过程序都会生成一个新的 X11 绘图窗口。 gnuplot 是从 python 调用的: os.system('gnuplot -persist "/home/pi/pp/plotstuff.gnu"') 绘图生成后,gnuplot 结束该 python 程序周期,使绘图窗口保持不变。但是每个周期都会产生一个新的情节窗口。

如何告诉 gnuplot 绘制到已经打开的 X 窗口,覆盖该窗口中的先前绘图? 我找到对"设置终端 x11 5#5n6#6"的引用 但想不通。

你需要做的是用一个单一的 gnuplot 命令替换你的多个 gnuplot 命令,你将来自 python 的数据和命令通过管道传输到其中。举一个简单的例子,看看这个 bash 脚本如何做你想要的,创建文件和更新单个窗口。

#!/bin/bash
f(){
let n=n+1
cat <<!
set title "plot $n"
set terminal gif medium size 1100,600 background "#e7e7ff"
set output "file$n.gif"
plot "-" with lines
1 $RANDOM
2 $RANDOM
3 $RANDOM
4 $RANDOM
end
set terminal x11
set size 1,1
refresh
!
}
while f
do    sleep 5
done |
gnuplot -

最新更新