3

我想在 jupyter 笔记本中使用 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 的在线绘图功能,也不想使用交互来解决这个问题。

非常感谢您的回答。

4

1 回答 1

3

你试过使用interact吗?这是一个非常清晰的例子: http: //nbviewer.jupyter.org/github/yankev/test/blob/master/plotlywidget_working2.ipynb

顺便说一句,该interact功能存在ipywidgets(并且IPython.html.widgets不再存在)。除此之外,该示例几乎是最新的。

于 2018-03-29T12:04:11.293 回答