输入
pg.QtGui.QApplication.exec_()
进入标准Python REPL打开一个包含数据图的窗口。在IPython REPL或Jupyter控制台中输入完全相同的代码,不会打开这样的窗口。
[可以通过键入public class Item implements Parcelable{
private String name;
private String body;
private String profileImage;
public Item(){
}
public Item(Parcel in) {
name = in.readString();
body = in.readString();
profileImage = in.readString();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeString(body);
dest.writeString(profileImage);
}
@SuppressWarnings("unused")
public static final Parcelable.Creator<Item> CREATOR = new Parcelable.Creator<Item>() {
@Override
public Item createFromParcel(Parcel in) {
return new Item(in);
}
@Override
public Item[] newArray(int size) {
return new Item[size];
}
};
public Item(String body,String name,String profileImage){
this.body = body;
this.name = name;
this.profileImage = profileImage;
}
使窗口显示,但然后阻止REPL。
或者,当尝试退出REPL时会出现窗口,并且需要确认。
这两者都非常令人不满意。]
如何使用基本的交互式pyqtgraph绘图来使用IPython REPL?
[在IPython 5.1.0和Jupyter 5.0.0中使用Python 3.5和3.6以及PyQt4和PyQt5(没有PySide)观察到所描述的行为]
答案 0 :(得分:1)
由于@titusjan的消息,解决方案是输入
%gui qt
在发布任何pyqtgraph(或一般的PyQt)命令之前,(或该主题的一些变体:查看%gui?
中可用的其他选项)在IPython 中。
答案 1 :(得分:0)
我在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')