from ipyflex import FlexLayout
import ipywidgets as widgets
import plotly.graph_objects as go
import numpy
import math
slider = widgets.FloatRangeSlider(description = 'Range')
omega = widgets.FloatSlider(description = 'Omega',value = 1)
fig = go.FigureWidget()
fig.add_trace(go.Scatter(x=[],y=[]))
fig.update_layout(title = 'Hello Ipyflex')
fig.update_traces
f = lambda t: math.sin(t)
def compute(*ignore):
min = slider.value[0]
max = slider.value[1]
x = numpy.arange(min, max, (max-min)/100)
y = [f(omega.value* _) for _ in x]
fig.data[0].x= x
fig.data[0].y= y
slider.observe(compute, 'value')
omega.observe(compute, 'value')
all_widgets = {'A slider widget':slider, 'Output result': fig, 'Another slider': omega}
header = dict(title='Demo header',
style={'background':'green',
'color':'yellow',
'fontStyle': 'italic'},
buttons=['import','export']
)
w = FlexLayout(all_widgets, style={'height': '600px'}, template = './simple.json', editable=True, header=header)
w
page = w