IPython 在使用 pyqtgraph 显示绘图时出错
error with IPython in showing plots with 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
的 windows 打开并显示 'not responding' 并挂起,我看不到任何输出。长时间 window 崩溃后,终端显示:
Kernel died, restarting
可能是什么错误?我应该使用 .exe 安装吗?
编辑:
正如 titusjan 在下面指出的那样,问题出在 Anaconda 附带的默认 Jupyter/Ipython 笔记本上,我无法更正。肯定有一些安装问题。我正在研究 Windows。
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
用于 运行ning 在 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')
我已经在 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
的 windows 打开并显示 'not responding' 并挂起,我看不到任何输出。长时间 window 崩溃后,终端显示:
Kernel died, restarting
可能是什么错误?我应该使用 .exe 安装吗?
编辑: 正如 titusjan 在下面指出的那样,问题出在 Anaconda 附带的默认 Jupyter/Ipython 笔记本上,我无法更正。肯定有一些安装问题。我正在研究 Windows。
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
用于 运行ning 在 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')