<p>2015年夏天,我面临着一个类似的任务:嵌入交互小部件,当滑动条移动时,这些小部件会改变它们的底层数据。这与<a href="http://nbviewer.ipython.org/github/ipython/ipython/blob/master/examples/Interactive%20Widgets/Index.ipynb" rel="noreferrer">interactive IPython widgets</a>非常相似,后者在本地计算机上运行时是交互式的。我想要的例子可以在<a href="https://jakevdp.github.io/blog/2013/12/05/static-interactive-widgets/" rel="noreferrer">jakevdp's blog</a>找到。</p>
<p>总结迄今所做的工作:</p>
<ul>
<li><a href="https://github.com/jakevdp/ipywidgets" rel="noreferrer">ipywidgets-static</a>将交互式IPython小部件转换为静态HTML。但是,不再维护此库。发展已经转移到<a href="https://github.com/ipython/ipywidgets" rel="noreferrer">ipython/ipywidgets</a>。</li>
<li>IPython正在研究<a href="https://github.com/ipython/ipywidgets" rel="noreferrer">ipython/ipywidgets</a>。它们有一个<a href="https://github.com/ipython/ipywidgets/issues/16#issuecomment-105725797" rel="noreferrer">Github issue</a>使这些小部件成为静态的,并嵌入到一个独立的HTML文件中。</li>
<li><a href="http://ioam.github.io/holoviews/" rel="noreferrer">HoloViews</a>提供了一些可以嵌入到静态HTML文件中的交互式滑块选项(使用IPython的nbconvert)</li>
<li><a href="http://bokeh.pydata.org/en/latest/" rel="noreferrer">Bokeh</a>绘图依赖于交互式滑块<a href="http://bokeh.pydata.org/en/latest/docs/quickstart.html#bokeh-plot-server" rel="noreferrer">require a server</a>。</li>
<li><a href="https://plot.ly" rel="noreferrer">plot.ly</a>不支持滑块/etc。我相信基于这个<a href="http://moderndata.plot.ly/widgets-in-ipython-notebook-and-plotly/" rel="noreferrer">blog post</a>这是正确的。</li>
<li><a href="http://mpld3.github.io" rel="noreferrer">mpld3</a>在matplotlib和d3之间转换。我相信这个库支持平移和缩放,而不是滑块/交互。这是<a href="https://github.com/jakevdp/mpld3/issues/79" rel="noreferrer">related Github issue</a></li>
</ul>
<p>还有一篇名为“<a href="http://cyrille.rossant.net/scientific-python-in-the-browser-its-coming/" rel="noreferrer">Scientific Python in the browser: it's coming!</a>”的博文。这篇文章的日期是2014年3月31日。</p>
<p>对我来说,最吸引人的两个选项是ipywidgets和HoloViews,但我期待IPython提供静态交互小部件。我希望在不到5年/2020年(以及2年/2017年?)的时间内看到对静态交互小部件的可靠支持。</p>