在使用pyqtgraph显示图时,IPython出错

时间:2016-07-12 19:25:53

标签: python-2.7 ipython anaconda jupyter pyqtgraph

我在python 2.7中成功安装了pyqtgraph库。我从GitHub分叉了最新的项目,然后是python setup.py install。我现在正试图用它来展示情节。我打开一个python终端并开始键入以下内容: -

import pyqtgraph as pg
import numpy as np
x = np.random.normal(size=1000)
y = np.random.normal(size=1000)

所有这些命令都已成功解释。 但后来我运行命令将情节看作: -

pg.plot(x, y, symbol='o')

输出:

<pyqtgraph.graphicsWindows.PlotWindow at 0x6b7f708>

然后打开一个标题为pythonw的窗口,并说“没有回应”#39;并挂起,我无法看到任何输出。经过长时间的窗口崩溃和终端说:

Kernel died, restarting

可能是什么错误?我应该安装使用.exe吗?

修改 正如titusjan下面指出的那样,问题在于Anaconda的默认Jupyter / Ipython笔记本,我无法纠正。必须有一些安装问题。我正在使用Windows。

1 个答案:

答案 0 :(得分:1)

pyqtgraph绘制基于PyQT GUI编程的函数。因此,显示绘图的任务必须被视为启动GUI。如上所述,当我将命令提供给IPython终端时,它运行良好:

import numpy as np
import pyqtgraph as pg
import sys

x = np.random.normal(size=1000)
y = np.random.normal(size=1000)

如上所述,当我输入该行时问题开始:

pg.plot(x, y, symbol='o')

要解决这个问题:要么一次性输入这两行

pg.plot(x, y, symbol='o')
pg.QtGui.QApplication.exec_()

或紧接在上一行pg.plot(x, y, symbol='o')之后输入以下行:

pg.QtGui.QApplication.exec_()

或者我们也可以使用默认的QT-GUI命令。因此,即使我们运行此代码,我们也会得到正确的图: -

import numpy as np
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui 
import sys

x = np.random.normal(size=1000)
y = np.random.normal(size=1000)
pg.plot(x, y, symbol='o')
if sys.flags.interactive != 1 or not hasattr(QtCore, 'PYQT_VERSION'):
    QtGui.QApplication.instance().exec_()

但是,如果要避免显式调用QTGui方法,假设已将下面的代码保存为xyz.py,则可以通过在命令行上写入来成功运行显示图形的代码:pythonw -i xyz.py 。这确保已明确要求python以交互模式运行。 pythonw用于在Windows中运行。

import numpy as np
import pyqtgraph as pg

x = np.random.normal(size=1000)
y = np.random.normal(size=1000)
pg.plot(x, y, symbol='o')