cmd - 使用 gnuplot 从 stdin 绘制数据

标签 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

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

最佳答案

如果你在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/

相关文章:

plot - GNUPLOT:从平滑累积中保存数据

java - 如何在 Java process.destroy() 中终止进程

gnuplot - 直方图栏隐藏抽动

gnuplot - 如何根据其数据更改时间格式

gnuplot - gnuplot 的红色调色板

gnuplot - gnuplot 中的复杂布局 : mixing text and graphs

c++ - CMD 异常处理 C/C++

Windows 批处理 Do 在这个时候出乎意料

c - Tee 命令将输出保存在 txt 文件中

mysql - 程序 'mysql.exe'无法运行: The specified executable is not a valid application