Python 3.x 使用Plotly和ipywidgets

Python 3.x 使用Plotly和ipywidgets,python-3.x,plotly,ipywidgets,vbox,Python 3.x,Plotly,Ipywidgets,Vbox,我正在将plotly offline与ipywidgets一起使用,无法理解以下代码不起作用的原因: op=widgets.Output() with op: iplot([{"x": [1,2,3],"y": [3,1,6]}]) box=widgets.VBox([widget1,op] display(box) 如果我单独调用display(op),它可以工作,但我无法理解为什么在调用display(box)时不显示绘图 你知道吗 提前感谢的输出似乎只能使用一次。下

我正在将plotly offline与ipywidgets一起使用,无法理解以下代码不起作用的原因:

op=widgets.Output()

with op:
     iplot([{"x": [1,2,3],"y": [3,1,6]}])    

box=widgets.VBox([widget1,op]
display(box)
如果我单独调用display(op),它可以工作,但我无法理解为什么在调用display(box)时不显示绘图

你知道吗

提前感谢

的输出似乎只能使用一次。下面的代码创建了一个可以多次调用以创建输出的函数

导入库

import pandas as pd
import numpy as np
%matplotlib inline
import cufflinks as cf
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot 

init_notebook_mode(connected=True)
cf.go_offline()

from ipywidgets import widgets
from IPython.display import display, clear_output, Image
from plotly.widgets import GraphWidget
创建示例数据帧

df = pd.DataFrame({'x': [1,2,3], 'y':[3,1,6]})
df

创建函数

def get_out(df,xvar,yvar):
    layout={'autosize':False,'width':300,'height':300}
    op=widgets.Output()
    with op:
        w1 = df.iplot(x=xvar,y=yvar, layout=layout) 
    return op
display()
无框打印

op = get_out(df,'x','y')
display(op)

display()
使用
VBox()打印

# Call function 
op = get_out(df,'x','y')
widget1 = get_out(df,'y','x')
# Create box
box=widgets.VBox([widget1, op],layout={'border': '3px solid black','width':'55%'})
display(box)

非常感谢,这正是我要找的!