使用 Plotly 和 ipywidgets
Use Plotly and ipywidgets
我正在使用 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) 时不显示绘图...
你有什么想法吗?
看来widget.Output()
的输出只能用一次。下面的代码创建了一个可以多次调用以创建输出的函数。
导入库
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)
我正在使用 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) 时不显示绘图...
你有什么想法吗?
看来widget.Output()
的输出只能用一次。下面的代码创建了一个可以多次调用以创建输出的函数。
导入库
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)