[英]Use both matplotlib inline and qt in jupyter notebook
我正在使用Jupyter(与IPython一起使用)来分析研究数据以及导出数据。 我真的很喜欢Jupyter提供的笔记本方法:长时间浏览实验后,我可以轻松地看到数字与数据的对应关系。 当然,这是使用内联后端。
但是,当我想探索新数据时,我更喜欢使用QT后端。 它比嵌入式方法快,并且可以轻松缩放,放大和缩小,并在左下角很好地显示X和Y坐标。 此外,我可以使用QT后端来确定要在串联后端中使用的良好x和y限制。
我已经尝试过使用%matplotlib notebook
魔术,但是它太慢了。 对于某些实验,我正在绘制〜500个光谱(每个光谱由〜1000个数据点组成),这在嵌入式后端中已经很慢了。 即使数据点较少,笔记本后端也使用起来太慢。
因此,每当我绘图时,我都想同时使用QT后端和内联后端。 (因此,每当我执行绘制数据的单元格时,它都应显示嵌入式图像并弹出QT后端窗口)。 这样,我仍然可以很好地了解笔记本中的绘图,同时还可以轻松浏览数据。 有没有办法做到这一点?
这使您可以内联并通过QtConsole使用plotSin函数运行QtConsole。
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
..
def plotChirp(Type, Exp, Rand):
# Orignal Chirp Funciton From:
# http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-matplotlib-plot-inline
x = np.linspace(0, 3*np.pi, Rand)
plt.plot(x, np.sin(x**int(Exp)))
plt.title('A simple chirp ' + Type)
plt.show()
..
plotChirp("A", 5, 200) # Plots inline if you choose
%connect_info # For your own connection
%qtconsole
QtConsole打开,现在您可以调用函数在外部进行绘图。
使用%matplotlib qt
可以循环打印,但不幸的是,它似乎与图形重叠。 寻找子图作为可能的解决方案。
%matplotlib qt
for i in range(0,2):
if i == 0:
plotChirp("B",1, 400)
else:
plotChirp("c",6, 1000)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.