使用stdin中的gnuplot绘制数据

时间:2014-10-06 11:10:27

标签: cmd gnuplot

我有简单的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

它不起作用。发生了什么事?

1 个答案:

答案 0 :(得分:1)

如果您使用的是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