在 jupyter notebook 中 plotly 使用 ipywidgets
Using ipywidgets with plotly in jupyter notebook
我想在 jupyter notebook 中使用 plotly 的离线绘图,并想通过使用 ipywidgets 中的小部件来操作或重绘绘图。
不幸的是,我没有设法适当地更新情节:
from ipywidgets import widgets, HBox, Output
import plotly as py
from plotly.offline import iplot
from IPython.display import display
%matplotlib inline
ip_widget = widgets.FloatSlider(
value=6,
min=3,
max=10,
step=1,
description='num',
continuous_update = True
)
ow = Output()
def response(change):
with ow:
iplot([{'x':list(range(int(ip_widget.value))), 'y': list(range(int(ip_widget.value)))}])
ip_widget.observe(response)
display(ip_widget)
提供的代码有两个缺点:
它多次绘制图表。
如果使用滑块,该图只会显示。
我怎样才能克服这两个问题?请注意,我不想使用 plotly 的在线绘图功能,也不想使用 interact 来解决这个问题。
非常感谢您的回答。
您尝试过使用 interact
吗?这是一个非常清楚的例子:
http://nbviewer.jupyter.org/github/yankev/test/blob/master/plotlywidget_working2.ipynb
顺便说一下,interact
函数存在于 ipywidgets
中(不再是 IPython.html.widgets
)。除此之外,这个例子几乎是 up-to-date.
我想在 jupyter notebook 中使用 plotly 的离线绘图,并想通过使用 ipywidgets 中的小部件来操作或重绘绘图。 不幸的是,我没有设法适当地更新情节:
from ipywidgets import widgets, HBox, Output
import plotly as py
from plotly.offline import iplot
from IPython.display import display
%matplotlib inline
ip_widget = widgets.FloatSlider(
value=6,
min=3,
max=10,
step=1,
description='num',
continuous_update = True
)
ow = Output()
def response(change):
with ow:
iplot([{'x':list(range(int(ip_widget.value))), 'y': list(range(int(ip_widget.value)))}])
ip_widget.observe(response)
display(ip_widget)
提供的代码有两个缺点: 它多次绘制图表。 如果使用滑块,该图只会显示。 我怎样才能克服这两个问题?请注意,我不想使用 plotly 的在线绘图功能,也不想使用 interact 来解决这个问题。
非常感谢您的回答。
您尝试过使用 interact
吗?这是一个非常清楚的例子:
http://nbviewer.jupyter.org/github/yankev/test/blob/master/plotlywidget_working2.ipynb
顺便说一下,interact
函数存在于 ipywidgets
中(不再是 IPython.html.widgets
)。除此之外,这个例子几乎是 up-to-date.