python-3.x - 带有 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')
解决方案
我认为它应该几乎按照您描述的方式工作。您唯一忘记的是关闭管道,以便您的行实际上由 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。
推荐阅读
- javascript - 在异步模块内调用没有回调的函数
- c - 二维数组和指针有什么关系?
- javascript - redux 不在另一个页面上显示道具
- php - 将 MySQL SELECT 查询与 IF 语句相结合
- php - 使用 Laravel 按点订购收集
- python - 当前操作系统上不可用的功能的python异常?
- c# - “重力”不包含“CENTER_HORIZONTAL”的定义
- java - 如何使用 Sheets APIv4 Java 在 Google 表格中插入一行
- awk - 如何将 awk 指令的结果输出到与当前工作目录不同的目录
- unity3d - Unity 中的物理对象在低速时无法正确反弹