Raspberry Pi 上的 Gnuplot,绘图到 X11 终端,我怎样才能重用同一个 X 窗口?
Posted
技术标签:
【中文标题】Raspberry Pi 上的 Gnuplot,绘图到 X11 终端,我怎样才能重用同一个 X 窗口?【英文标题】:Gnuplot on Raspberry Pi, plotting to X11 terminal, how can I re-use the same X window? 【发布时间】:2018-01-26 04:04:27 【问题描述】:我在 RPi 上的 Python 中成功地 gnuplotting 到 X 窗口。
python 代码收集数据,定期将其附加到 CSV 文件并绘制 CSV 文件: ('设置终端 gif 中等大小 1100,600 背景 "#e7e7ff"\n') ('设置输出 "/home/pi/pp/plotdata.gif"\n') 这会定期覆盖 gif 并 FTP 传输 gif 文件。 gif 文件通过 FTP 传输到引用 html 源中的绘图图像的 Web 主机。一切都很好。
问题: 我还想从 Python 程序本地显示绘图。我可以用“设置终端 X11”来做到这一点,但是通过程序的每个循环都会产生一个新的 X11 绘图窗口。 gnuplot 从 python 调用: os.system('gnuplot -persist "/home/pi/pp/plotstuff.gnu"') 生成绘图后,gnuplot 结束该 python 程序周期,使绘图窗口保持不变。但是每个周期都会产生一个新的绘图窗口。
如何告诉 gnuplot 绘图到已经打开的 X 窗口,覆盖该窗口中的前一个绘图?我发现对“设置终端 x11 5#5n6#6”的引用 但想不通。
【问题讨论】:
【参考方案1】:您需要做的是用一个 gnuplot 替换您的多个 gnuplot 命令,您可以将来自 python 的数据和命令通过管道传输到该 gnuplot 中。举个简单的例子,看看这个 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 -
【讨论】:
以上是关于Raspberry Pi 上的 Gnuplot,绘图到 X11 终端,我怎样才能重用同一个 X 窗口?的主要内容,如果未能解决你的问题,请参考以下文章
Raspberry Pi 3(服务器)上的 Python 蓝牙错误