def __display_dates(self): """ Manage dates widgets """ # Dates to download start = self.catalogue.products.TemporalExtentStart.iloc[0] start = self.__string_to_datetime(start) style = {'description_width': 'initial'} self.start_date = widgets.DatePicker( value=start, description='Start date (dd/mm/yyyy)', disabled=False, style={'description_width': 'initial'}) end = self.catalogue.products.TemporalExtentEnd.iloc[0] end = self.__string_to_datetime(end) style = {'description_width': 'initial'} self.end_date = widgets.DatePicker( value=end, description='End date (dd/mm/yyyy)', disabled=False, style={'description_width': 'initial'}) display(self.start_date) display(self.end_date)
def interactive(): code_values = [] global country_codes for code in country_codes: code_values.append(code['name']) country = widgets.Dropdown( options=code_values, value=code_values[0], description='Country:', disabled=False, ) start = widgets.DatePicker( value=datetime.datetime(2020,1,1), description='Start Date:', disabled=False ) end = widgets.DatePicker( value=datetime.datetime(2020,12,31), description='End Date:', disabled=False ) interact(get_data, country=country, date_start=start, date_end=end)
def main_date(self): date1 = widgets.DatePicker(description='Pick a start date', disabled=False, style={'description_width': '40%'}) date2 = widgets.DatePicker(description='Pick an end date', disabled=False, style={'description_width': '40%'}) date1.value = date(2018, 9, 1) date2.value = date(2018, 9, 3) self.date1 = date1.value self.date2 = date2.value button = widgets.Button( description='Update time range', disabled=False, button_style='', # 'success', 'info', 'warning', 'danger' or '' tooltip='Click me', icon='check') button.on_click(self.data_update) d = {'date1': date1, 'date2': date2} title_w = widgets.HTML( "<span style='float:left;font-size:2em;font-weight:bold'>Radial plot of satellite observation</span>" ) ui = widgets.VBox([title_w, widgets.HBox([date1, date2]), button]) out = widgets.interactive_output(self.update_date, d) self.ui = ui self.out = out self.button = button display(ui, out)
def __post_init__(self): cats = list(self.bp.cfg['Plan'].keys()) self.plotter = widgets.HBox([ widgets.Dropdown(options=cats, value=cats[0], description='Category:'), widgets.DatePicker(description='Start Date'), widgets.DatePicker(description='End Date') ]) self.output = widgets.Output() def plot(change_dict): nonlocal self with self.output: print(f'Loading...') with self.output: clear_output() fig, df = self.bp.category_plot( cat=self.plotter.children[0].value, start_date=self.plotter.children[1].value, end_date=self.plotter.children[2].value, figsize=(9.6, 5.4)) display(fig) self.df = df for c in self.plotter.children: c.observe(plot, names='value')
def __init__(self, df, df_bm, bm_process_func, colormap): """ + initialize class with dataframe + initiatlive all ipywidgets """ self.df = df self.df_bm = df_bm self.bm_process_func = bm_process_func self.DF = pd.DataFrame() self.colormap = colormap self.advertisers = ['all'] + sorted(list(set(self.df['advertiser']))) self.creative_types = ['all'] + sorted( list(set(self.df['creative_type']))) self.advert_dropdown = ipywidgets.Dropdown(options=self.advertisers, value=self.advertisers[0], disabled=False) self.creative_type_dropdown = ipywidgets.Dropdown( options=self.creative_types, value=self.creative_types[0], disabled=False) yesterday = datetime.datetime.now() - datetime.timedelta(1) t_60 = yesterday - datetime.timedelta(60) self.d1_DatePicker = ipywidgets.DatePicker(disabled=False, value=t_60) self.d2_DatePicker = ipywidgets.DatePicker(disabled=False, value=yesterday)
def __init__(self, domain): self.domain = domain self.local_data_dir = 'csv_files' os.makedirs(self.local_data_dir, exist_ok=True) self.start_datetime_default = datetime.now() - timedelta(days=1) self.end_datetime_default = datetime.now() - timedelta(days=1) self.instrument_id = widgets.Select( description='Instrument ID: ', options=['1', '2', '4', '5', '6', '7', '8', '9'], value='1', disabled=False, ) # Widget generation: start date picker self.start_date = widgets.DatePicker( description='Start Date', value=self.start_datetime_default, disabled=False ) # Widget generation: end date picker self.end_date = widgets.DatePicker( description='End Date', value=self.end_datetime_default, disabled=False ) # Widget generation: Download file button self.button = widgets.Button( description='Download File', disabled=False, ) # attach an on click event to the download button so it triggers a csv file download self.button.on_click(self.download_csv_file) # Create a textarea into which download status will be displayed self.file_download_outputs = widgets.Textarea( value='', description='Output:', layout={'width': '90%', 'height': '100px'}, disabled=False ) # Get list of available data files self.available_data_files = widgets.Select( options=self.get_availiable_files(), description='', disabled=False, layout={'width': 'initial'} ) # output the widgets self.out = widgets.Output()
def pick_start_and_end_date(): start_date = widgets.DatePicker(description='Pick a start date', disabled=False) end_date = widgets.DatePicker(description='Pick a end date', disabled=False) display(start_date) display(end_date) return start_date, end_date
def widget(table_name, crawl_func, range_date=None): sig = signature(crawl_func) if len(sig.parameters) == 0: @out.capture() def onupdate(x): print('updating ', table_name) df = crawl_func() to_pickle(df, table_name) print('done') btn = widgets.Button(description='update ') btn.on_click(onupdate) first_date, last_date = table_date_range(table_name) label = widgets.Label(table_name + ' | ' + str(first_date) + ' ~ ' + str(last_date)) items = [btn] display(widgets.VBox([label, widgets.HBox(items)])) else: date_picker_from = widgets.DatePicker( description='from', disabled=False, ) first_date, last_date = table_date_range(table_name) if last_date: date_picker_from.value = last_date date_picker_to = widgets.DatePicker( description='to', disabled=False, ) date_picker_to.value = datetime.datetime.now().date() btn = widgets.Button(description='update ') def onupdate(x): dates = range_date(date_picker_from.value, date_picker_to.value) if len(dates) == 0: print('no data to parse') update_table(table_name, crawl_func, dates) btn.on_click(onupdate) label = widgets.Label(table_name + ' | ' + str(first_date) + ' ~ ' + str(last_date)) items = [date_picker_from, date_picker_to, btn] display(widgets.VBox([label, widgets.HBox(items)]))
def pick_start_and_end_date(): """ Pick dates """ start_date = widgets.DatePicker(description='Pick a start date', disabled=False) end_date = widgets.DatePicker(description='Pick a end date', disabled=False) # pylint: disable=undefined-variable display(start_date) # pylint: disable=undefined-variable display(end_date) return start_date, end_date
def getCP(self): self.setLabel() self.usrTW = Text(value='', placeholder='', description='Username:'******'values') self.pwdPW = Password(value='', placeholder='', description='Password:'******'value') self.st = widgets.DatePicker(description='Start Date', value=datetime(2020, 4, 20), disabled=False, layout=Layout(width='220px')) self.et = widgets.DatePicker(description='End Date', value=datetime(2020, 4, 30), disabled=False, layout=Layout(width='220px')) self.st.observe(self.startDate) self.et.observe(self.endDate) self.latitude = Text(value='24.42', description='Latitude:', disabled=False, layout=Layout(width='220px')) self.longitude = Text(value='54.43', description='Longitude:', disabled=False, layout=Layout(width='220px')) self.latitude.observe(self.set_lat_val, names='value') self.longitude.observe(self.set_lon_val, names='value') self.plotms = Button(description='Plot in m/s', disabled=False, layout={ 'width': 'auto', 'border': '3px outset' }) self.plotms.on_click(self.plotWindRose_ms) self.plotkt = Button(description='Plot in kt', disabled=False, layout={ 'width': 'auto', 'border': '3px outset' }) self.plotkt.on_click(self.plotWindRose_kt) self.inpUSR.children += (HBox([ VBox([self.st, self.latitude, self.longitude]), VBox([self.et, self.plotms, self.plotkt]) ], layout={'overflow': 'visible'}), ) with self.out_cp: self.out_cp.clear_output() display(self.getCP) return self.cp
def __init__(self, domain): self.domain = domain self.local_data_dir = 'csv_files' os.makedirs(self.local_data_dir, exist_ok=True) self.start_datetime_default = datetime.now() - timedelta(days=1) self.end_datetime_default = datetime.now() - timedelta(days=1) self.instrument_id = widgets.Select( description='Instrument ID: ', options=['1', '2', '4', '5', '6', '7', '8', '9'], value='1', disabled=False, ) self.start_date = widgets.DatePicker(description='Start Date', value=self.start_datetime_default, disabled=False) self.end_date = widgets.DatePicker(description='End Date', value=self.end_datetime_default, disabled=False) self.end_date = widgets.DatePicker(description='End Date', value=self.end_datetime_default, disabled=False) self.button = widgets.Button( description='Download File', disabled=False, # button_style='', # 'success', 'info', 'warning', 'danger' or '' # tooltip='Click me', # icon='check' # (FontAwesome names without the `fa-` prefix) ) self.button.on_click(self.download_csv_file) self.file_download_outputs = widgets.Textarea( value='', # placeholder='Type something', description='Output:', layout={ 'width': '90%', 'height': '100px' }, disabled=False) self.available_data_files = widgets.Select( options=self.get_availiable_files(), description='', disabled=False, layout={'width': 'initial'}) self.out = widgets.Output()
def date_picker(): date1 = widgets.DatePicker(description='Pick a start date', disabled=False, style={'description_width': '40%'}) date2 = widgets.DatePicker(description='Pick an end date', disabled=False, style={'description_width': '40%'}) date1.value = date(2018, 9, 1) date2.value = date(2018, 9, 3) display(widgets.HBox([date1, date2])) return date1, date2
def pick_date_range(): from_day = widgets.DatePicker(description='From day', disabled=False, value=date(2020, 12, 1)) to_day = widgets.DatePicker(description='To day', disabled=False, value=date(2020, 12, 31)) display(from_day) display(to_day) return from_day, to_day
def __init__(self, df, ad_server='DFP'): self.df = df self.ad_server = ad_server self.d1 = ipywidgets.DatePicker(disabled=False, description='Start', value=df['date'].max() - datetime.timedelta(7)) self.d2 = ipywidgets.DatePicker(disabled=False, description='End', value=df['date'].max())
def pick_date_range(default_from=datetime.date(year=2019, month=5, day=1), default_to=datetime.date(year=2019, month=5, day=15)): from_day = widgets.DatePicker(description='From day', disabled=False, value=default_from) to_day = widgets.DatePicker(description='To day', disabled=False, value=default_to) display(from_day) display(to_day) return from_day, to_day
def dougnut2(): names = list(uploaded.keys()) options = list() for name in names: options.append(tuple([name.split('.')[0], name])) interact(select_dougnut2, Name=widgets.Dropdown( options=options, value=names[0], description='Employe:', ), start_date=widgets.DatePicker(), end_date=widgets.DatePicker())
def __init__(self, min_incidence=150): self.min_incidence = min_incidence self.max_incidence = None self.widget_min_incidence = widgets.IntText( value=min_incidence, description="Minimum:", disabled=False ) self.widget_max_incidence = widgets.IntText( value=2000, description="Maximum:", disabled=False ) self.widget_button = widgets.Button( description="Retracer", disabled=False, button_style="", # 'success', 'info', 'warning', 'danger' or '' tooltip="Retracer la figure avec les nouvelles données d'entrée", icon="sync-alt", # (FontAwesome names without the `fa-` prefix) ) self.widget_date_picker = widgets.DatePicker( description="Date début", value=create_date_object(default_first_day_in_plot), disabled=False, ) self.widget_button.on_click(self.sync) self.layout_inputs = widgets.TwoByTwoLayout( top_left=self.widget_max_incidence, bottom_left=self.widget_min_incidence, top_right=self.widget_date_picker, bottom_right=self.widget_button, )
def display_rel_change(self, minus_days=365): start = pd.Timestamp.today() - pd.DateOffset(days=minus_days) ia_start = widgets.DatePicker(description='Start Date', value=start) ia_height = widgets.IntSlider(value=700, min=200, max=1000, step=100, description='Height:', disabled=False, continuous_update=False, orientation='horizontal', readout=True, readout_format='d') ia_decimals = widgets.IntSlider(value=1, min=0, max=3, step=1, description='Decimals:', disabled=False, continuous_update=False, orientation='horizontal', readout=True, readout_format='d') controls = { 'start': ia_start, 'height': ia_height, 'decimals': ia_decimals } ui = widgets.HBox([ia_start, ia_height, ia_decimals]) out = widgets.interactive_output(self.scatter_rel_change, controls) display(ui, out)
def get_end_date(date = widgets.DatePicker( description='End date:', disabled=False, value=data_frames['repos']['pushed_at'].max(), style=dict(description_width='initial') )): query['end_date'].value = str(date)
def area(): """ Provide map and options to choose area of interest """ center = [65.73, -50.71] zoom = 4 m = Map(center=center, zoom=zoom) global dc, start, end, file, lon_l, lat_l, lon_r, lat_r # Pick date start = widgets.DatePicker(disabled=False) end = widgets.DatePicker(disabled=False) # Select from map dc = DrawControl(rectangle={'shapeOptions': { 'color': '#0000FF' }}, polyline={}, polygon={}, circlemarker={}) m.add_control(dc) # Shapefile file = widgets.FileUpload(accept='.shp', multiple=False) # Bounding box lon_l = widgets.FloatText(description="lon") lat_l = widgets.FloatText(description="lat") lon_r = widgets.FloatText(description="lon") lat_r = widgets.FloatText(description="lat") return (AppLayout(header=VBox([ HTML("<h1>Select area (time and space)</h1>"), HBox([Label("Start Date:"), start, Label("End Date:"), end]) ]), center=m, right_sidebar=VBox([ HTML("<h3>or upload shapefile<h3>"), file, HTML("<h3> <h3>"), HTML("<h3>or bounding box<h3>"), Label("Bottom-left corner"), lon_l, lat_l, Label("Upper-right corner"), lon_r, lat_r ])))
def select_widget(obj, attr): val = getattr(obj, attr) # On récupère le type de l'attribut et pas seulement de la valeur try: valtype = getattr(type(obj), attr).type except AttributeError: valtype = type(getattr(obj, attr)) if valtype is bool: widget = widgets.Checkbox(value=val, description=attr, disabled=False) elif valtype is int: widget = widgets.IntText(value=val, description=attr, disabled=False) elif valtype is float: widget = widgets.FloatText(value=val, description=attr, disabled=False) elif valtype is str: widget = widgets.Text(value=val, description=attr, disabled=False, placeholder='') elif isinstance(val, basictypes.Enum): widget = widgets.Dropdown(value=val.name, options=list(type(val).__members__.keys()), description=attr, disabled=False) elif isinstance(val, basictypes.date): widget = widgets.DatePicker(value=val, description=attr, disabled=False) elif isinstance(val, basictypes.time): widget = widgets.Text(value=val.strftime("%H:%M:%S"), description=attr, disabled=False, placeholder='hh:mm:ss') elif isinstance(val, basictypes.datetime): widget = widgets.HBox( (widgets.Label(value=attr), widgets.DatePicker(value=val), widgets.Text(value=val.strftime("%H:%M:%S"), placeholder='hh:mm:ss'))) else: widget = None return widget
def __init__(self, df): self.df = df self.d1 = ipywidgets.DatePicker(disabled=False, description='Start', value=df['date'].max() - datetime.timedelta(7)) self.d2 = ipywidgets.DatePicker(disabled=False, description='End', value=df['date'].max()) self.slider = ipywidgets.IntSlider(value=1000, min=100, max=5000, step=100, continuous_update=False, description='imp threshold')
def widget(conn, table_name, crawl_func, range_date): date_picker_from = widgets.DatePicker( description='from', disabled=False, ) if table_exist(conn, table_name): date_picker_from.value = table_latest_date(conn, table_name) date_picker_to = widgets.DatePicker( description='to', disabled=False, ) date_picker_to.value = datetime.datetime.now().date() btn = widgets.Button(description='update ') def onupdate(x): dates = range_date(date_picker_from.value, date_picker_to.value) if len(dates) == 0: print('no data to parse') update_table(conn, table_name, crawl_func, dates) btn.on_click(onupdate) if table_exist(conn, table_name): label = widgets.Label( table_name + ' (from ' + table_earliest_date(conn, table_name).strftime('%Y-%m-%d') + ' to ' + table_latest_date(conn, table_name).strftime('%Y-%m-%d') + ')') else: label = widgets.Label(table_name + ' (No table found)(對於finance_statement是正常情況)') items = [date_picker_from, date_picker_to, btn] display(widgets.VBox([label, widgets.HBox(items)]))
def __init__(self, df): self.df = df self.DF = pd.DataFrame() self.adunit = ['engage', 'marquee', 'inline', 'spotlight'] self.metrics = ['Viewability', 'DFP_CTR', '3P_CTR', 'IR', 'VSR'] self.site = ['qz', 'wrk', 'zty'] self.adunit_dropdown = ipywidgets.Dropdown(options=self.adunit, value=self.adunit[0], disabled=False) self.metric_dropdown = ipywidgets.Dropdown(options=self.metrics, value="Viewability", disabled=False) self.site_dropdown = ipywidgets.Dropdown(options=self.site, value=self.site[0], disabled=False) self.rolling = ipywidgets.IntSlider(value=4, min=1, max=7, step=1, description='rolling', disabled=False) yesterday = datetime.datetime.now() - datetime.timedelta(1) t_60 = yesterday - datetime.timedelta(60) self.d1_DatePicker = ipywidgets.DatePicker(disabled=False, value=t_60) self.d2_DatePicker = ipywidgets.DatePicker(disabled=False, value=yesterday) self.left_box = ipywidgets.VBox( [self.site_dropdown, self.metric_dropdown, self.adunit_dropdown]) self.right_box = ipywidgets.VBox( [self.d1_DatePicker, self.d2_DatePicker, self.rolling]) self.controls = ipywidgets.HBox([self.left_box, self.right_box])
def _widget_datetime(self): widget_dt = widgets.DatePicker(description='Datetime of measurement', disabled=False) def _observe_dt(change): date = widget_dt.value if date is not None: self.metadata['date'] = date.isoformat() self._update_widget_export() widget_dt.observe(_observe_dt) return widget_dt
def init_widgets(self): # prints out the current selection of MdB, party and timespan self.selection_widget = widgets.Label() # widget to render figures in self.display_widget = widgets.Output() # submit button self.submit_widget = widgets.Button(description="Submit") self.submit_widget.on_click(self.on_click) # widgets to set MdB, party, timespan self.name_widget = widgets.Combobox( placeholder="Choose an MdB", options=tuple(self.mdbs), description="MdB:", ensure_option=True, ) self.start_widget = widgets.DatePicker(description="Start date") self.end_widget = widgets.DatePicker(description="End date")
def history_ui(): date_wid = widgets.DatePicker(description='Pick a Date', value=dt.datetime.today(), disabled=False) def filter_data(date): d = read(dr['MAT']+'Timesheet.pkl') date=dt.datetime(date.year,date.month,date.day) c1=(d['From']>date)*(d['To']<=date+pd.to_timedelta('23:59:59')) c11=d[c1] idx=[i for i in d.index if d['To'][i].day==d['From'][i].day+1] c12=d.loc[idx] c10=c12[(c12['To']>=date)*(c12['To']<=date+pd.to_timedelta('23:59:59'))] for j in ['From','To']: c11[j]=[c11[j].iloc[i].strftime('%H:%M:%S') for i in range(len(c11[j]))] c13=pd.concat((c10,c11)) display(c13) def total_df(date): d = read(dr['MAT']+'Timesheet.pkl') date=dt.datetime(date.year,date.month,date.day) c1=(d['From']>pd.to_datetime(date))*(d['To']<=pd.to_datetime(date)+pd.to_timedelta('23:59:59')) c11=d[c1] idx=[i for i in d.index if d['To'][i].day==d['From'][i].day+1] c12=d.loc[idx] c10=c12[(c12['To']>=date)*(c12['To']<=date+pd.to_timedelta('23:59:59'))] c13=pd.concat((c10,c11)) acts=sorted(list(set(c13['Activity']))) act1=pd.Series(acts) tot=[c13[c13['Activity']==j]['Duration'].sum() for j in act1] tot1=pd.Series(tot) tot2=pd.DataFrame({'Activity': act1,'Total Duration':tot1}) tot2 = tot2.sort_values(by='Total Duration',ascending=False) tot2 = tot2.reset_index(drop=True) display(tot2) out1 = widgets.interactive_output(filter_data, {'date': date_wid}) out2 = widgets.interactive_output(total_df, {'date': date_wid}) ui = VBox([date_wid,HBox([out1,out2])]) return ui
def __init__(self, df, site='qz', ad_server='DFP'): """ """ self.df = df if site not in self.sites: raise ValueError('site kwarg should be "qz", "wrk", "zty"') self.site = site # if creative_type not in self.creative_type_metrics.keys(): # raise ValueError('creative_type kwarg should be: ' + ( # "; ".join(sorted(self.creative_type_metrics.keys() # )))) # self.creative_type = creative_type self.ad_server = ad_server self.d1 = ipywidgets.DatePicker(disabled=False, description='Start', value=df['date'].max() - datetime.timedelta(7)) self.d2 = ipywidgets.DatePicker(disabled=False, description='End', value=df['date'].max()) co = df.fillna(0).groupby('creative_type', as_index=False)['dfp_impressions'].sum() co = co.sort_values('dfp_impressions', ascending=False) self.creative_type_dropdown = ipywidgets.Dropdown( options=co['creative_type'], value=co.iloc[0]['creative_type'], disabled=False) self.slider = ipywidgets.IntSlider(value=20, min=5, max=50, step=1, continuous_update=False, description='display size')
def display_widget(dt=widgets.DatePicker(description='Date', disabled=False, value=pd.to_datetime('01/27/2020'))): data = df1 #delete NANs data.dropna(inplace=True) #Date picker filters data data = data.query("ObservationDate==@dt") #Create a new column to display on the graph data['text'] = data['Province_State'] + ' Confirmed Cases: ' + data['Confirmed'].astype(str) limits = [(0,100000)] #set Bubble Color colors = ["crimson"] cities = [] scale = 5000 #Instantiate graph fig = go.Figure() #Add data points for i in range(len(limits)): lim = limits[i] df_sub = data[lim[0]:lim[1]] fig.add_trace(go.Scattergeo( locationmode = 'USA-states', lon = data['Longitude'], lat = data['Latitude'], text = data['text'], marker = dict( size = data['Confirmed'], color = colors[i], line_color='rgb(40,40,40)', line_width=0.5, sizemode = 'area' ), name = '{0} - {1}'.format(lim[0],lim[1]))) #Set title and land color fig.update_layout( title_text = 'Coronavirus Outbreak by the Day', showlegend = False, geo = dict( scope = 'usa', landcolor = 'rgb(225, 225, 225)', ) ) #Display Figure fig.show()
def __init__(self, layout: widgets.Layout = None): if layout is None: layout = widgets.Layout(display='flex', flex_flow='row', align_items='center', justify_content='center', style=style) super().__init__(layout=layout) self.datetime_start: datetime = None self.datetime_end: datetime = None self.datepicker_start: widgets.DatePicker = widgets.DatePicker( description='Pick a Start Date:', disabled=False, style=style) self.hourpicker_start: widgets.BoundedIntText = widgets.BoundedIntText( value=0, min=0, max=23, step=1, description='Hour:', disabled=False, style=style) self.datepicker_end: widgets.DatePicker = widgets.DatePicker( description='Pick an End Date:', disabled=False, style=style) self.hourpicker_end: widgets.BoundedIntText = widgets.BoundedIntText( value=0, min=0, max=23, step=1, description='Hour:', disabled=False, style=style) start_date_box: widgets.VBox = widgets.VBox( [self.datepicker_start, self.hourpicker_start]) end_date_box: widgets.VBox = widgets.VBox( [self.datepicker_end, self.hourpicker_end]) self.children = [start_date_box, end_date_box]