如果我用matplotlib内联启动一个ipython笔记本,有没有办法随后绘制一个图形,以便以“标准”,非内联方式显示,而不必在没有内联命令的情况下重新加载笔记本?我希望能够在笔记本上插入一些数字,但是在传统的交互模式下,我可以放大和平移。
答案 0 :(得分:37)
您可以按%matplotlib <backend>
切换matplotlib的后端。要切换回系统的默认后端,请使用%matplotlib auto
或只是%matplotlib
。
有许多后端可用,例如gtk
,qt
,notebook
等。我个人强烈推荐notebook
(a.k.a。nbagg
)后端。它类似于inline
但是具有交互性,允许从Jupyter内部进行缩放/平移。
有关更多信息,请尝试:IPython / Jupyter中的?%matplotlib
或IPython's online documentation
答案 1 :(得分:7)
plt.ioff()
和plt.ion()
就像我的Jupyter笔记本中的魅力一样,notebook
作为后端(假设通常是import matplotlib.pyplot as plt
)。
答案 2 :(得分:5)
这取决于matplotlib的确切配置,
但你可以在内联和'osx','qt4','qt5','gtk3','wx','qt','gtk','tk'之间切换(有些是其他的别名)。只需使用%matplotlib <the one you want>
切换即可。根据您的情况,您只能访问其中一个。
答案 3 :(得分:5)
另一种可能性是使用matplotlib.pyplot.close(fig)
。即使%matplotlib auto
引发了一个可怕的wx
错误(与我在LD_LIBRARY_PATH
中安装的GTK开发文件的版本相关),这对我也有用。
虽然这可能会导致问题,如果你正在做一些像制作视频(或者它可能没有;没有尝试过),但是当我使用IPython.display.HTML
每{{3}在表格中组装图像时,这对我有用。 }}