我有一个简单的 python 脚本(smazat.py),可以生成一些数据
for i in range(50):
print i, i-20
我可以使用以下命令在 Windows 命令行中制作图像
smazat.py | gnuplot -e "set term png;p '-'" > smazat.png
但是,当使用具有相同命令的 gnuplot 脚本时,如下所示
smazat.py | gnuplot smazat.gp > smazat.png
它不起作用。发生什么事了?
最佳答案
如果你在Unix系统上,你可以使用
plot `< cat -`
实现这一点(参见 pipe plot data to gnuplot script )。
在 Windows 上,由于您无论如何都使用 python,因此您可以编写一个小的 cat.py
python 脚本,将 stdin 传递到 stdout:
脚本cat.py
from __future__ import print_function
import sys
for line in sys.stdin:
print(line, file=sys.stdout, end='')
绘图文件plot.gp
set term png
plot '< python cat.py'
然后用
调用它python smazat.py | gnuplot plot.gp > smazat.png
关于cmd - 使用 gnuplot 从 stdin 绘制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26214984/