如何让基本的交互式 pyqtgraph 图在 IPython REPL 或 Jupyter 控制台中工作?
How to get basic interactive pyqtgraph plot to work in IPython REPL or Jupyter console?
正在打字
import pyqtgraph as pg
pg.plot([1,2,3,2,3])
进入标准 Python REPL 打开一个包含数据图的 window。在 IPython REPL 或 Jupyter 控制台中输入完全相同的代码,不会打开 window.
[可以通过键入 pg.QtGui.QApplication.exec_()
使 window 出现,但随后 REPL 被阻止。
或者,当尝试退出 REPL 时会出现 window,并且需要确认。
这两个都非常不满意。]
如何使基本的交互式 pyqtgraph 绘图与 IPython REPL 一起工作?
[在 IPython 5.1.0 和 Jupyter 5.0.0 以及 Python 3.5 和 3.6 以及 PyQt4 和 PyQt5(无 PySide)中观察到了所描述的行为]
正如@titusjan 所说,解决方案是输入
%gui qt
(或该主题的一些变体:查看 %gui?
有哪些其他选项)在 IPython before 发布任何 pyqtgraph(或 PyQt in一般)命令。
我在 Jupyter Notebook 中遇到了 matplotlib 的问题。它不够快,我发现导航不足。我使用在这里找到的技巧让 pyqtgraph 开始工作。我的天啊!这是一个很棒的工具。您获得的导航和速度非常棒。
想在这里分享我的解决方案。
%gui qt5
from PyQt5.Qt import QApplication
# start qt event loop
_instance = QApplication.instance()
if not _instance:
_instance = QApplication([])
app = _instance
import pyqtgraph as pg
# create and and set layout
view = pg.GraphicsView()
view.setWindowTitle('Your title')
layout = pg.GraphicsLayout()
view.setCentralItem(layout)
view.show()
# Set white graph
pg.setConfigOptions(antialias=True)
pg.setConfigOption('background', 'w')
pg.setConfigOption('foreground', 'k')
# add subplots
p0 = layout.addPlot(0,0)
p0.addLegend()
p0.plot([1,2,3,4,5], pen='b', name='p0')
p1 = layout.addPlot(1,0)
p1.addLegend()
p1.plot([2,2,2,2,], pen='r', name='p1')
p2 = layout.addPlot(1,0)
p2.addLegend(offset=(50, 0))
p2.plot([-1,0,1,1,], pen='g', name='p1.1')
p2.hideAxis('left')
p2.showAxis('right')
你会得到一个像这样的弹出窗口 window
正在打字
import pyqtgraph as pg
pg.plot([1,2,3,2,3])
进入标准 Python REPL 打开一个包含数据图的 window。在 IPython REPL 或 Jupyter 控制台中输入完全相同的代码,不会打开 window.
[可以通过键入 pg.QtGui.QApplication.exec_()
使 window 出现,但随后 REPL 被阻止。
或者,当尝试退出 REPL 时会出现 window,并且需要确认。
这两个都非常不满意。]
如何使基本的交互式 pyqtgraph 绘图与 IPython REPL 一起工作?
[在 IPython 5.1.0 和 Jupyter 5.0.0 以及 Python 3.5 和 3.6 以及 PyQt4 和 PyQt5(无 PySide)中观察到了所描述的行为]
正如@titusjan 所说,解决方案是输入
%gui qt
(或该主题的一些变体:查看 %gui?
有哪些其他选项)在 IPython before 发布任何 pyqtgraph(或 PyQt in一般)命令。
我在 Jupyter Notebook 中遇到了 matplotlib 的问题。它不够快,我发现导航不足。我使用在这里找到的技巧让 pyqtgraph 开始工作。我的天啊!这是一个很棒的工具。您获得的导航和速度非常棒。
想在这里分享我的解决方案。
%gui qt5
from PyQt5.Qt import QApplication
# start qt event loop
_instance = QApplication.instance()
if not _instance:
_instance = QApplication([])
app = _instance
import pyqtgraph as pg
# create and and set layout
view = pg.GraphicsView()
view.setWindowTitle('Your title')
layout = pg.GraphicsLayout()
view.setCentralItem(layout)
view.show()
# Set white graph
pg.setConfigOptions(antialias=True)
pg.setConfigOption('background', 'w')
pg.setConfigOption('foreground', 'k')
# add subplots
p0 = layout.addPlot(0,0)
p0.addLegend()
p0.plot([1,2,3,4,5], pen='b', name='p0')
p1 = layout.addPlot(1,0)
p1.addLegend()
p1.plot([2,2,2,2,], pen='r', name='p1')
p2 = layout.addPlot(1,0)
p2.addLegend(offset=(50, 0))
p2.plot([-1,0,1,1,], pen='g', name='p1.1')
p2.hideAxis('left')
p2.showAxis('right')
你会得到一个像这样的弹出窗口 window