如何在 IPython notebook 中打开交互式 matplotlib 窗口?

新手上路,请多包涵

我将 IPython 与 --pylab=inline 一起使用,有时想快速切换到交互式、可缩放的 matplotlib GUI 以查看绘图(当您在终端 Python 控制台中绘制某些内容时弹出的那个)。我怎么能那样做?最好不要离开或重新启动我的笔记本电脑。

IPy notebook 中内联图的问题是它们的分辨率有限,我无法放大它们以查看一些较小的部分。使用从终端启动的 maptlotlib GUI,我可以选择要放大的图形矩形,并相应地调整轴。我试着尝试

from matplotlib import interactive
interactive(True)

interactive(False)

但这没有做任何事情。我在网上也找不到任何提示。

原文由 metakermit 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 835
2 个回答

根据 文档,您应该能够像这样来回切换:

 In [2]: %matplotlib inline
In [3]: plot(...)

In [4]: %matplotlib qt  # wx, gtk, osx, tk, empty uses default
In [5]: plot(...)

这将弹出一个常规绘图窗口(可能需要重新启动笔记本电脑)。

原文由 Adrian Martin 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果你想做的只是从内联图切换到交互式和返回(以便你可以平移/缩放),最好使用 %matplotlib magic。

 #interactive plotting in separate window
%matplotlib qt

然后返回到 html

 #normal charts inside notebooks
%matplotlib inline

%pylab magic 导入了一堆其他东西,甚至可能导致冲突。它执行“来自 pylab 导入 *”。

您还可以使用新的笔记本后端(在 matplotlib 1.4 中添加):

 #interactive charts inside notebooks, matplotlib 1.4+
%matplotlib notebook

如果你想在你的图表中有更多的交互性,你可以看看 mpld3bokeh 。 mpld3 很棒,如果你没有大量的数据点(例如 <5k+)并且你想使用普通的 matplotlib 语法,但与 %matplotlib notebook 相比具有更多的交互性。 Bokeh 可以处理大量数据,但您需要学习它的语法,因为它是一个单独的库。

你也可以查看 pivottablejs (pip install pivottablejs)

 from pivottablejs import pivot_ui
pivot_ui(df)

无论交互式数据探索多么酷,它都会完全破坏可重复性。它发生在我身上,所以我尝试只在很早的阶段使用它,一旦我对数据有了感觉,就切换到纯内联 matplotlib/seaborn。

原文由 volodymyr 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题