<p>这也不是<code>mpld3</code>,但是这里有一个在<code>jupyter notebook</code>中使用<code>bqplot</code>的快速示例,它的灵感来自于Sergey在<a href="https://stackoverflow.com/questions/37837210/is-it-actually-possible-to-pass-data-callback-from-mpld3-to-ipython/43917766?noredirect=1#comment83946782_43917766">Is it actually possible to pass data (callback) from mpld3 to ipython?</a>的评论/问题,以及Sergey和Drew的答案。在</p>
<p>首先,在Python环境中安装<code>bqplot</code>,然后打开一个笔记本</p>
<pre><code>(... do whatever to make anaconda work for you....)
conda install bqplot
jupyter notebook
</code></pre>
<p>然后将可调的交互式散射图代码粘贴到第一个块中:</p>
^{pr2}$
<p>然后,在绘图出现后,单击并拖动一两个数据点,然后在下一个块中查看绘图中的更改:</p>
<pre><code>print([x_data-scatter_plot.x,y_data-scatter_plot.y])
</code></pre>
<p>我原以为<a href="https://github.com/bloomberg/bqplot/blob/master/examples/Introduction.ipynb" rel="nofollow noreferrer">https://github.com/bloomberg/bqplot/blob/master/examples/Introduction.ipynb</a>中的回调函数是必需的,但只有当您想触发修改的代码时才需要它。在</p>
<p>为此,请尝试以下方法:</p>
<pre><code>def foo(change):
print('This is a trait change. Foo was called by the fact that we moved the Scatter')
#print('In fact, the Scatter plot sent us all the new data: ')
#print('To access the data, try modifying the function and printing the data variable')
global pdata
pdata = [scatter_plot.x,scatter_plot.y]
#print (pdata)
# Hook up our function `foo` to the coordinates attributes (or Traits) of the scatter plot
scatter_plot.observe(foo, ['y','x'])
</code></pre>
<p>然后对<code>x,y</code>坐标的更改触发<code>foo</code>,并更改全局变量{<cd7>}。您将看到<code>foo()</code>的打印输出附加到第一个块的输出,更新后的pdata将可用于未来的代码块。在</p>