def overlayViewer(im4d, overlay3d, zz=0, tt=0, th=0, oa=1, im_range=None, o_range=None): tt_enable = True if im4d.ndim == 3: im4d = im4d[:,:,:,np.newaxis] tt_enable = False out = widgets.Output() zz_slider = widgets.IntSlider(min=0, max=im4d.shape[2]-1, step=1, value=zz) tt_slider = widgets.IntSlider(min=0, max=im4d.shape[3]-1, step=1, value=tt) oa_slider = widgets.FloatSlider(min=0, max=1, step=0.1, value=oa) if issubclass(overlay3d.dtype.type, np.integer) or overlay3d.dtype == np.bool: th = 1 th_slider = widgets.IntSlider(min=np.amin(overlay3d), max=np.amax(overlay3d), step=1, value=th) th_slider.visible = False oa_slider.visible = True else: th_slider = widgets.FloatSlider(min=np.amin(overlay3d), max=np.amax(overlay3d), step=0.01, value=th) oa_slider.visible = False overlay_button = widgets.ToggleButton(description='Overlay', value=True) if not tt_enable: tt_slider.visible = False with warnings.catch_warnings(): warnings.simplefilter('ignore') w = widgets.interactive(overlayShow, recon=widgets.fixed(im4d), overlay3d=widgets.fixed(overlay3d), zz=zz_slider, tt=tt_slider, th=th_slider, oa=oa_slider, oe=overlay_button, im_range=widgets.fixed(im_range), o_range=widgets.fixed(o_range), out=widgets.fixed(out)) wo = widgets.HBox(children=(w,out)) display(wo)
def FilterFreqs(audioData, freqDom, freqs): """ Produces UI componants for user. Drives plotting of filtered signal (FilterFreqs) ---------- Parameters ---------- audioData: array_like raw audio data freqDom: array_like transformed frequnecy domain data freqs: array_like frequencies """ filter_sldr = widgets.IntRangeSlider(value=[0, 0], min=0, max=23e3, step=1000, continuous_update=False, description='Freq Band') xlim_sldr = widgets.IntRangeSlider(value=[0, 22.5e3], min=0, max=22.5e3, step=1000, continuous_update=False, description='Ax. lim') export_btn = widgets.ToggleButton(value=False, description='Export to .wav') display( widgets.VBox([ widgets.interactive_output( FilterBand, { 'audioData': widgets.fixed(audioData), 'freqDom': widgets.fixed(freqDom), 'freqs': widgets.fixed(freqs), 'filtFreq': filter_sldr, 'FALim': xlim_sldr, 'export': export_btn }), widgets.HBox([xlim_sldr, filter_sldr, export_btn]) ]))
def plot_riemann_solution(ql, qr, a): c = lambda q, xi: a soln = riemann_solution(ql, qr, a) plot_advection = riemann_tools.make_plot_function(*soln, plot_chars=[c]) return interact(plot_advection, t=widgets.FloatSlider(value=0.0, min=0, max=1.0), which_char=widgets.fixed(True))
def reconViewer(im4d, zz=0, tt=0, rgb=False): tt_enable = True if im4d.ndim == 3: im4d = im4d[:,:,:,np.newaxis] tt_enable = False if rgb: tt_enable = False out = widgets.Output() zz_slider = widgets.IntSlider(min=0, max=im4d.shape[2]-1, step=1, value=zz) tt_slider = widgets.IntSlider(min=0, max=im4d.shape[3]-1, step=1, value=tt) if not tt_enable: tt_slider.visible = False with warnings.catch_warnings(): warnings.simplefilter('ignore') w = widgets.interactive(reconShow, recon=widgets.fixed(im4d), zz=zz_slider, tt=tt_slider, rgb=widgets.fixed(rgb), out=widgets.fixed(out)) wo = widgets.HBox(children=(w,out)) display(wo)
def plot_riemann_solution(ql, qr, a): c = lambda q, xi: a soln = riemann_solution(ql ,qr, a) plot_advection = riemann_tools.make_plot_function(*soln, plot_chars=[c]) return interact(plot_advection, t=widgets.FloatSlider(value=0.0,min=0,max=1.0), which_char=widgets.fixed(True))
def traces_widget(node: TimeSeries, neurodata_vis_spec: dict = None, time_window_controller=None, start=None, dur=None, trace_controller=None, trace_starting_range=None, **kwargs): if time_window_controller is None: tmax = get_timeseries_maxt(node) tmin = get_timeseries_mint(node) if start is None: start = tmin if dur is None: dur = min(tmax - tmin, 5) time_window_controller = make_time_window_controller(tmin, tmax, start=start, duration=dur) if trace_controller is None: if trace_starting_range is None: trace_starting_range = (0, min(30, node.data.shape[1])) trace_controller = int_range_controller( node.data.shape[1], start_range=trace_starting_range) controls = { 'time_series': widgets.fixed(node), 'time_start': time_window_controller.children[0].children[0], 'time_duration': time_window_controller.children[0].children[1], 'trace_window': trace_controller.children[0], } controls.update({key: widgets.fixed(val) for key, val in kwargs.items()}) out_fig = widgets.interactive_output(plot_traces, controls) control_widgets = widgets.HBox(children=(time_window_controller, trace_controller)) vbox = widgets.VBox(children=[control_widgets, out_fig]) return vbox
def traces_widget(node: TimeSeries, neurodata_vis_spec: dict = None, time_window_controller=None, start=None, dur=None, trace_controller=None, trace_starting_range=None, **kwargs): if time_window_controller is None: tmax = get_timeseries_maxt(node) tmin = get_timeseries_mint(node) if start is None: start = tmin if dur is None: dur = min(tmax-tmin, 5) time_window_controller = StartAndDurationController(tmax, tmin, start=start, duration=dur) if trace_controller is None: if trace_starting_range is None: trace_starting_range = (0, min(30, node.data.shape[1])) trace_controller = RangeController(0, node.data.shape[1], start_range=trace_starting_range, description='channels', dtype='int', orientation='vertical') controls = { 'time_series': widgets.fixed(node), 'time_window': time_window_controller, 'trace_window': trace_controller.slider, } controls.update({key: widgets.fixed(val) for key, val in kwargs.items()}) out_fig = widgets.interactive_output(plot_traces, controls) lower = widgets.HBox(children=[ trace_controller, out_fig ]) out = widgets.VBox(children=[ time_window_controller, lower ]) return out
def symmetryCheck(f1, f2, showSym, showArea): a_slider = widgets.FloatSlider(value=1, min=0, max=np.pi, step=0.1, continuous_update=False) if not showSym: displayEvenOdd(f1, f2, showArea) else: display( widgets.VBox([ a_slider, widgets.interactive_output( displayEvenOdd, { "f1": widgets.fixed(f1), "f2": widgets.fixed(f2), "showArea": widgets.fixed(showArea), "a": a_slider }) ]))
def MusicNote(audioData, freqDom, freqs): """ Produces UI componants for user. Drives plotting of PlotFourierAnalysis ---------- Parameters ---------- audioData: array_like raw audio data freqDom: array_like transformed frequency domain data freqs: array_like frequencies """ xlim_sldr = widgets.IntRangeSlider(value=[0, 22.5e3], min=0, max=22.5e3, step=1000, continuous_update=False, description='Ax. lim') return widgets.VBox([ widgets.interactive_output( PlotSignal, { 'signal': widgets.fixed(audioData), 'amps': widgets.fixed(freqDom), 'freqs': widgets.fixed(freqs), 'FALim': xlim_sldr }), widgets.HBox([xlim_sldr]) ])
def wofost_parameter_sweep(): widgets.interact_manual( wofost_parameter_sweep_func, crop_start_date=widgets.fixed(dt.date(2011, 7, 1)), crop_end_date=widgets.fixed(dt.date(2011, 11, 1)), span=widgets.FloatSlider(value=40.0, min=20, max=50), cvo=widgets.FloatSlider(value=0.72, min=0.1, max=0.9, step=0.02), cvl=widgets.FloatSlider(value=0.72, min=0.1, max=0.9, step=0.02), tdwi=widgets.FloatSlider(value=20.0, min=5, max=50), tsum1=widgets.FloatSlider(value=750.0, min=100, max=1500), tsum2=widgets.FloatSlider(value=859.0, min=100, max=1500), tsumem=widgets.FloatSlider(value=70, min=10, max=200), rgrlai=widgets.FloatSlider(value=0.05, min=0.001, max=0.3, step=0.01), meteo=widgets.fixed("Upper_East"), crop=widgets.fixed("maize"), variety=widgets.fixed("Maize_VanHeemst_1988"), soil=widgets.fixed("ec4.new"), wav=widgets.FloatSlider(value=5, min=0, max=100), co2=widgets.fixed(400), rdmsol=widgets.fixed(100.), potential=widgets.Checkbox(value=False, description='Potential mode', icon='check'))
def __init__( self, time_series: TimeSeries, dynamic_table_region_name=None, foreign_time_window_controller: StartAndDurationController = None, foreign_group_and_sort_controller: GroupAndSortController = None, mpl_plotter=plot_grouped_traces, **kwargs): """ Parameters ---------- time_series: TimeSeries dynamic_table_region_name: str, optional foreign_time_window_controller: StartAndDurationController, optional foreign_group_and_sort_controller: GroupAndSortController, optional mpl_plotter: function Choose function to use when creating figures kwargs """ if (dynamic_table_region_name is not None and foreign_group_and_sort_controller is not None): raise TypeError( "You cannot supply both `dynamic_table_region_name` and `foreign_group_and_sort_controller`." ) super().__init__() self.time_series = time_series if foreign_time_window_controller is not None: self.time_window_controller = foreign_time_window_controller else: self.tmin = get_timeseries_mint(time_series) self.tmax = get_timeseries_maxt(time_series) self.time_window_controller = StartAndDurationController( tmin=self.tmin, tmax=self.tmax) self.controls = dict( time_series=widgets.fixed(self.time_series), time_window=self.time_window_controller, dynamic_table_region_name=widgets.fixed(dynamic_table_region_name), ) if foreign_group_and_sort_controller is None: if dynamic_table_region_name is not None: dynamic_table_region = getattr(time_series, dynamic_table_region_name) table = dynamic_table_region.table referenced_rows = np.array(dynamic_table_region.data) self.gas = GroupAndSortController( dynamic_table=table, keep_rows=referenced_rows, ) self.controls.update(gas=self.gas) else: self.gas = None range_controller_max = min(30, self.time_series.data.shape[1]) self.range_controller = RangeController( 0, self.time_series.data.shape[1], start_value=(0, range_controller_max), dtype="int", description="traces", orientation="vertical", ) self.controls.update(window=self.range_controller) else: self.gas = foreign_group_and_sort_controller self.controls.update(gas=self.gas) # Sets up interactive output controller out_fig = interactive_output(mpl_plotter, self.controls) if foreign_time_window_controller: right_panel = out_fig else: right_panel = widgets.VBox( children=[ self.time_window_controller, out_fig, ], layout=widgets.Layout(width="100%"), ) if foreign_group_and_sort_controller or self.gas is None: if self.range_controller is None: self.children = [right_panel] else: self.children = [self.range_controller, right_panel] else: self.children = [self.gas, right_panel]
def set_controls(self, **kwargs): self.controls.update(timeseries=fixed(self.timeseries), time_window=self.time_window_controller) self.controls.update( {key: widgets.fixed(val) for key, val in kwargs.items()})
# パラメータ「threshold1」「threshold2」を設定するスライダー thresh_slider = widgets.SelectionRangeSlider(options=np.arange(1000), index=(100, 200), description=f"threshold") thresh_slider.layout.width = "400px" # パラメータ「apertureSize」を設定するスライダー aperture_size_slider = slider = widgets.IntSlider(min=3, max=7, step=2, value=3, description="apertureSize: ") aperture_size_slider.layout.width = "400px" # パラメータ「L2gradient」を設定するチェックボックス l2_gradient_checkbox = widgets.Checkbox(value=False, description="L2gradient: ") l2_gradient_checkbox.layout.width = "400px" # 画像を読み込む。 img = cv2.imread("sample.jpg") # ウィジェットを表示する。 widgets.interactive( canny, img=widgets.fixed(img), thresh=thresh_slider, apertureSize=aperture_size_slider, L2gradient=l2_gradient_checkbox, )
def __init__( self, time_series: TimeSeries, dynamic_table_region_name=None, foreign_time_window_controller: StartAndDurationController = None, foreign_group_and_sort_controller: GroupAndSortController = None, mpl_plotter=plot_grouped_traces, **kwargs): """ Parameters ---------- time_series: TimeSeries dynamic_table_region_name: str, optional foreign_time_window_controller: StartAndDurationController, optional foreign_group_and_sort_controller: GroupAndSortController, optional mpl_plotter: function Choose function to use when creating figures kwargs """ if dynamic_table_region_name is not None and foreign_group_and_sort_controller is not None: raise TypeError( 'You cannot supply both `dynamic_table_region_name` and `foreign_group_and_sort_controller`.' ) super().__init__() self.time_series = time_series if foreign_time_window_controller is not None: self.time_window_controller = foreign_time_window_controller else: self.tmin = get_timeseries_mint(time_series) self.tmax = get_timeseries_maxt(time_series) self.time_window_controller = StartAndDurationController( tmin=self.tmin, tmax=self.tmax) self.controls = dict( time_series=widgets.fixed(self.time_series), time_window=self.time_window_controller, ) if foreign_group_and_sort_controller is None: if dynamic_table_region_name is not None: dynamic_table_region = getattr(time_series, dynamic_table_region_name) table = dynamic_table_region.table referenced_rows = dynamic_table_region.data discard_rows = [ x for x in range(len(table)) if x not in referenced_rows ] self.gas = GroupAndSortController( dynamic_table=table, start_discard_rows=discard_rows) self.controls.update(gas=self.gas) else: self.gas = None else: self.gas = foreign_group_and_sort_controller self.controls.update(gas=self.gas) # Sets up interactive output controller out_fig = interactive_output(mpl_plotter, self.controls) if foreign_time_window_controller: right_panel = out_fig else: right_panel = widgets.VBox(children=[ self.time_window_controller, out_fig, ], layout=widgets.Layout(width="100%")) if foreign_group_and_sort_controller or self.gas is None: self.children = [right_panel] else: self.children = [self.gas, right_panel] self.layout = widgets.Layout(width="100%")