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 上的 Alsa 问题

Raspberry Pi 上的 Mono [关闭]

无法连接到 Raspberry Pi 上的 BLE 设备

Raspberry Pi 3(服务器)上的 Python 蓝牙错误

Raspberry Pi 上的 ssh 连接被拒绝 [关闭]

Raspberry Pi 上的 OpenCV 人脸检测速度很慢