首页 > 解决方案 > 带有 python 3x 的 gnuplot

问题描述

如何在 Windows 上将 gnuplot 与 python3x 一起使用。我一直在使用以下代码。

import subprocess
proc = subprocess.Popen(['Patho to gnuplot executable','--persist'], 
                    shell=False,
                    stdin=subprocess.PIPE,
                    )
proc.stdin.write(b'set xrange [0:10]; set yrange [-2:2] \n')
proc.stdin.write(b'plot sin(x) \n')
proc.stdin.write(b'quit \n') 

标签: python-3.xgnuplot

解决方案


我认为它应该几乎按照您描述的方式工作。您唯一忘记的是关闭管道,以便您的行实际上由 gnuplot 处理。目前无法在 Windows 上对其进行测试,但在 Linux 上可以正常工作(唯一改变的是添加的最后一行):

import subprocess
proc = subprocess.Popen(['Patho to gnuplot executable','--persist'], 
                shell=False,
                stdin=subprocess.PIPE,
                )
proc.stdin.write(b'set xrange [0:10]; set yrange [-2:2] \n')
proc.stdin.write(b'plot sin(x) \n')
proc.stdin.write(b'quit \n')
proc.stdin.close()

编辑以回答第二个“问题”(请不要将您的澄清作为答案发布,只需评论或编辑您的初始问题):

不应该有默认的“Popen”功能。在我看来,您以与代码片段不同的方式导入它。例如

from subprocess import Popen

将仅导入 Popen 模块,但直接导入 python 程序的符号表(而不是 subprocess 模块)。有关更多信息,请参阅例如https://docs.python.org/3/tutorial/modules.html


推荐阅读