15

我找到了这两个答案: ipython notebook 中的动画图如何在 ipython notebook 中将 matplotlib 图作为 html 抓取?

但它们不涉及交互性。我想显示一个带有 2-3 条曲线的图,并让用户悬停这些曲线以接收更多详细信息或控制用于从组合框生成这些曲线的参数

4

7 回答 7

9

在iPython检查以下答案: Manipulate-like command 。

以及以下两个方向:

  1. 在IPythoninteract/ive中激发IPython - 软件的属性以及它们如何影响我们的工作 - Brian Granger接近 32m:12s;可在IPython 的 github获得
  2. Altair提供了基于 vega-lite 的强大而简洁的语法;看画廊
  3. MPLD3:将 Matplotlib 引入浏览器
于 2014-02-25T14:49:10.467 回答
7

我不相信标准的 matplotlib 绘图能够实现您想要的交互性。 Chaco可以做交互式图表,但不能在 ipython 笔记本 AFAICT 中。你最好的选择可能是Bokeh。它输出到 Javascript/HTML,可以做交互式图表,并有一个从 ipython 使用它的例子。

于 2013-07-05T13:10:03.340 回答
7

您可能想查看Plotly。他们在 IPython Notebooks 中渲染交互式 D3 绘图(此处的示例。您也可以导出为静态图像,并在悬停时缩放、悬停、平移和查看文本。交互性是他们强调的重点之一。更多信息,您还可以在 Notebook 中使用IPython 小部件,这为您提供了更多控制和选项。例如:

在此处输入图像描述

于 2013-12-01T00:09:12.583 回答
3

像@AFoglia 一样,我将建议您可能正在寻找的其他库:TangleMathematica NotebooksIPython / BokehRactiveJSReactJS

于 2013-07-11T01:44:16.087 回答
2

另一个解决方案可能是Charts库。它使您能够使用出色的Highcharts javascript 库来制作开箱即用的精美交互式绘图。

一些特点:

  • 您可以下载 .png、.jpg 和 .svg 格式的矢量图,因此您永远不会遇到分辨率问题。
  • 交互式图表(缩放、滑动、悬停在点上,...)
  • 可在 IPython 笔记本中使用
  • 使用异步绘图功能同时探索数百个数据结构。

免责声明:我是图书馆的开发者

于 2015-05-22T13:45:14.730 回答
1

您可以直接从 IPython 笔记本(%%html%%javascript)运行 javascript,因此应该可以运行D3代码。检查这个视频。实现这一点的确切方式尚未确定,因为这是 IPython 2.0 的一个特性。到目前为止,有许多可用的 hack,以及尝试将 D3 的某些特性移植到 Python 的项目(例如bokehpython-nvd3)。

我还没有测试过这些。我自己的偏见是首先尝试下面的示例,它是静态的,但直接使用 D3(因此理论上它应该适用于交互式绘图):

于 2013-11-21T00:32:48.947 回答
1

这里的其他答案似乎已经过时了。IPython 2.0 支持交互式小部件。阅读包含一些示例的文档,但请注意 nbviewer.ipython.org 不显示交互式小部件。将示例复制并粘贴到try.jupyter.org作品中。

于 2015-05-26T19:15:47.033 回答