<p>对,所以找到了<a href="https://plot.ly/python/figurewidget-app/" rel="nofollow noreferrer">Interactive Data Analysis with FigureWidget ipywidgets</a>-并相应地重写了该示例;这有更平滑的响应,并且没有双重绘制-但是,我仍然不确定这是否是一种方法;因此,如果有人知道得更好,请发布。。。在</p>
<pre><code>import plotly.graph_objs as go
import numpy as np
#from ipywidgets import interact, interactive
from ipywidgets import widgets
from IPython.display import display
aSlider = widgets.FloatSlider(
value=2.0,
min=1.0,
max=4.0,
step=0.01,
description='a:',
continuous_update=False
)
bSlider = widgets.FloatSlider(
value=1.0,
min=0.0,
max=10.0,
step=0.01,
description='b:',
continuous_update=True
)
colorDropdown = widgets.Dropdown(
description='Color:',
value='blue',
options=['red', 'blue', 'green']
)
fig = go.FigureWidget()
#fig.show()
scattf = fig.add_scatter()
scatt = scattf.data[-1]
xs=np.linspace(0, 6, 100)
def response(change):
with fig.batch_update():
fig.data[0].x=xs
fig.data[0].y=np.sin(aSlider.value*xs-bSlider.value)
fig.data[0].line.color=colorDropdown.value
fig.layout.xaxis.title = 'whatever'
aSlider.observe(response, names="value")
bSlider.observe(response, names="value")
colorDropdown.observe(response, names="value")
response("doesn't matter what I send here, just triggering") # MUST be before widgets.VBox - if response(x) is last, NOTHING is drawn!
widgets.VBox([aSlider,
bSlider,
colorDropdown,
fig])
</code></pre>