有没有办法在IPython笔记本中创建交互式图(一个D3)?

时间:2013-07-05 07:22:09

标签: ipython-notebook

我找到了这两个答案: Animated graphs in ipython notebookHow to grab matplotlib plot as html in ipython notebook?

但他们没有解决互动问题。我想显示一条包含2-3条曲线的图表,让用户将这些曲线悬停以接收更多细节或控制用于从组合框生成这些曲线的参数

7 个答案:

答案 0 :(得分:9)

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

以及以下两个方向:

  1. IPython interact/ive的动机是IPython - The Attributes ofSoftware and How They Affect Our Work - Brian Granger近32米:12秒;并可在IPython's github
  2. 获取
  3. Altair提供了一个强大而简洁的语法,基于vega-lite;请参阅gallery
  4. MPLD3: Bringing Matplotlib to the Browser

答案 1 :(得分:7)

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

答案 2 :(得分:7)

您可能需要查看Plotly。它们在IPython笔记本中呈现交互式D3图(示例here。您也可以导出为静态图像,并在悬停上进行缩放,悬停,平移和查看文本。交互性是他们强调的一个方面。有关更多信息,您还可以在Notebook中使用IPython widgets,这样可以提供更多控制和选项。例如:

enter image description here

答案 3 :(得分:3)

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

答案 4 :(得分:2)

另一个解决方案可能是Charts库。它使您能够使用优秀的Highcharts JavaScript库来制作漂亮的交互式图表。

一些功能:

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

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

这里的其他回答似乎已经过时了。 IPython 2.0支持用于交互式小部件。 Read the docs including some examples,但请注意,nbviewer.ipython.org不显示交互式小部件。复制&将示例粘贴到try.jupyter.org