matplotlib python内联开/关

时间:2015-06-16 21:35:57

标签: matplotlib ipython ipython-notebook

如果我用matplotlib内联启动一个ipython笔记本,有没有办法随后绘制一个图形,以便以“标准”,非内联方式显示,而不必在没有内联命令的情况下重新加载笔记本?我希望能够在笔记本上插入一些数字,但是在传统的交互模式下,我可以放大和平移。

4 个答案:

答案 0 :(得分:37)

您可以按%matplotlib <backend>切换matplotlib的后端。要切换回系统的默认后端,请使用%matplotlib auto或只是%matplotlib

有许多后端可用,例如gtkqtnotebook等。我个人强烈推荐notebook(a.k.a。nbagg)后端。它类似于inline但是具有交互性,允许从Jupyter内部进行缩放/平移。

有关更多信息,请尝试:IPython / Jupyter中的?%matplotlibIPython'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}在表格中组装图像时,这对我有用。 }}