def home_handler(document): df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type="datetime", y_range=(0, 25), y_axis_label="Temperature (Celsius)", height=500, width=800, title="Sea Surface Temperature at 43.18, -70.43") plot.line("time", "temperature", source=source) slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") def callback(attr, old, new): if new == 0: data = df else: data = df.rolling(f'{new}D').mean() source.data = dict(ColumnDataSource(data=data).data) slider.on_change("value", callback) document.add_root(column(slider, plot))
def modify_doc(doc): """ This functioin will modify the document attached to the application """ df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") plot.line('time', 'temperature', source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling('{0}D'.format(new)).mean() source.data = ColumnDataSource(data=data).data slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change('value', callback) doc.add_root(column(slider, plot)) doc.theme = Theme(filename="theme.yaml")
def bkapp(doc): df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") plot.line('time', 'temperature', source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling('{0}D'.format(new)).mean() source.data = ColumnDataSource.from_df(data) slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change('value', callback) doc.add_root(column(slider, plot)) #TODO: Fix theme.yaml path, findable from running anywhere. doc.theme = Theme(filename=os.path.join(Config.BASEDIR, 'web_app', 'bokeh', 'theme.yaml'))
def bkapp(doc): # Define app logic here df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") plot.line('time', 'temperature', source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling('{0}D'.format(new)).mean() source.data = ColumnDataSource.from_df(data) slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change('value', callback) # These should be kept somehow doc.add_root(column(slider, plot)) doc.theme = Theme(filename="theme.yaml")
def bkapp(doc): df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure( x_axis_type="datetime", y_range=(0, 25), y_axis_label="Temperature (Celsius)", title="Sea Surface Temperature at 43.18, -70.43", ) plot.line("time", "temperature", source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling("{0}D".format(new)).mean() source.data = ColumnDataSource(data=data).data slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change("value", callback) doc.add_root(column(slider, plot)) doc.theme = Theme(filename="theme.yaml")
def modify_doc(self, doc): df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") plot.line('time', 'temperature', source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling('{0}D'.format(new)).mean() source.data = ColumnDataSource(data=data).data slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change('value', callback) doc.add_root(column(slider, plot))
def sea_surface_handler(doc: Document) -> None: df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type="datetime", y_range=(0, 25), y_axis_label="Temperature (Celsius)", title="Sea Surface Temperature at 43.18, -70.43") plot.line("time", "temperature", source=source) def callback(attr: str, old: Any, new: Any) -> None: if new == 0: data = df else: data = df.rolling("{0}D".format(new)).mean() source.data = dict(ColumnDataSource(data=data).data) slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change("value", callback) doc.theme = theme doc.add_root(column(slider, plot))
def modify_doc(doc): flask_args = doc.session_context.request.arguments unit_type = flask_args.get('unit_type')[0].decode("utf-8") df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label=f"Temperature ({unit_type})") plot.line('time', 'temperature', source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling('{0}D'.format(new)).mean() source.data = ColumnDataSource(data=data).data slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change('value', callback) doc.add_root(column(slider, plot)) doc.theme = Theme(filename="theme.yaml")
def bkapp(doc): df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") plot.line('time', 'temperature', source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling('{0}D'.format(new)).mean() source.data = ColumnDataSource.from_df(data) slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change('value', callback) doc.add_root(column(slider, plot)) doc.theme = Theme(json=yaml.load(""" attrs: Figure: background_fill_color: "#DDDDDD" outline_line_color: white toolbar_location: above height: 500 width: 800 Grid: grid_line_dash: [6, 4] grid_line_color: white """, Loader=yaml.FullLoader))
def bkapp(doc): def handle_comm_message(message): print(message) print(doc) doc.on_comm_req = handle_comm_message df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") plot.line('time', 'temperature', source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling(f"{new}D").mean() source.data = ColumnDataSource.from_df(data) slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") #slider.on_change('value', callback) callback2 = CustomJS(code="console.log('wurenxi callback test')") slider.js_on_change('value', callback2) doc.add_root(column(slider, plot))
def bkapp_red(doc): """ Bokeh App Arguments: doc {Bokeh Document} -- bokeh document Returns: Bokeh Document --bokeh document with plot and slider """ dataframe = sea_surface_temperature.copy() source = ColumnDataSource(data=dataframe) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Red App - Sea Surface Temperature at 43.18, -70.43") plot.line(x='time', y='temperature', source=source, line_color='red') def callback(_attr, _old, new): if new == 0: data = dataframe else: data = dataframe.rolling('{0}D'.format(new)).mean() source.data = ColumnDataSource.from_df(data) slider = Slider(start=0, end=30, value=0, step=1, title="Application Red") slider.on_change('value', callback) doc.theme = Theme(filename=os.path.join(cwd(), 'theme.yaml')) return doc.add_root(column(slider, plot))
def __init__(self, **params): super(SeaSurface, self).__init__(**params) self.df = sea_surface_temperature.copy() self.source = ColumnDataSource(data=self.df) self.plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") self.plot.line('time', 'temperature', source=self.source)
def bkapp(curdoc): import time time.sleep(5) df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") plot.line('time', 'temperature', source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling('{0}D'.format(new)).mean() source.data = data plot.sizing_mode = "stretch_both" slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change('value', callback) paragraph = Paragraph(text="IOloop's id: %s" % str(id(bokeh_server.io_loop.asyncio_loop))) row = pn.Row(slider, plot, name="chart_1") row.sizing_mode = "stretch_both" row.server_doc(curdoc) other_figure = figure(title="Jajaja") other_figure.scatter(x=[1,2,3], y=[4,5,6]) other_figure.sizing_mode = "stretch_both" pn.Pane(other_figure, name="chart_2").server_doc(curdoc) curdoc.theme = Theme(filename="theme.yaml") # Options for Jinja template rendered by the Bokeh Server # (as opposed of by Starlette): curdoc.template = (Environment(loader=FileSystemLoader(searchpath="templates")) .get_template("index.html") ) curdoc.template_variables["rendered_by_bokeh_server"] = True
def modify_doc(doc): df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") plot.line('time', 'temperature', source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling('{0}D'.format(new)).mean() source.data = ColumnDataSource(data=data).data slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change('value', callback) doc.add_root(column(slider, plot)) doc.theme = Theme(filename="theme.yaml")
def modify_doc(doc): df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") plot.line('time', 'temperature', source=source) #def callback(attr, old, new): # if new == 0: # data = df # else: # data = df.rolling('{0}D'.format(new)).mean() # source.data = ColumnDataSource(data=data).data #slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") #slider.on_change('value', callback) doc.add_root(column(plot)) doc.theme = Theme(filename='D:/InstrPlatform/DataStation/src/TestScripts/theme.yaml')
def bkapp_table(doc): """Create a Table App Arguments: doc {Document} -- bokeh document Returns: Document -- updated bokeh document """ data = sea_surface_temperature.copy() data.reset_index(inplace=True) source = ColumnDataSource(data=data) columns = [ TableColumn(field='time', title='Time', formatter=DateFormatter(format='yy-mm-dd')), TableColumn(field='temperature', title='Temperature') ] data_table = DataTable(source=source, columns=columns, width=400, selectable='checkbox', index_position=None) doc.theme = Theme(filename=os.path.join(cwd(), 'theme.yaml')) return doc.add_root(data_table)
def add_plot_to_doc(doc): df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type='datetime', y_range=(0, 25), y_axis_label='Temperature (Celsius)', title="Sea Surface Temperature at 43.18, -70.43") plot.line('time', 'temperature', source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling('{0}D'.format(new)).mean() source.data = ColumnDataSource.from_df(data) slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change('value', callback) doc.add_root(column(slider, plot)) # Optional, for formatting the plot path = Path(__file__).parent file_path = (path / "theme.yaml") doc.theme = Theme(filename=file_path)
def __init__(self): super(MyHandler, self).__init__() self.safe_to_fork = True self.df = sea_surface_temperature.copy() self.source = ColumnDataSource(data=self.df)
from bokeh.io import curdoc from bokeh.layouts import column from bokeh.models import ColumnDataSource, Slider from bokeh.plotting import figure from bokeh.sampledata.sea_surface_temperature import sea_surface_temperature print("F:\django\traimaocv\bokeh_apps\sea_surface.py") df = sea_surface_temperature.copy() source = ColumnDataSource(data=df) plot = figure(x_axis_type="datetime", y_range=(0, 25), y_axis_label="Temperature (Celsius)", title="Sea Surface Temperature at 43.18, -70.43") plot.line("time", "temperature", source=source) def callback(attr, old, new): if new == 0: data = df else: data = df.rolling(f"{new}D").mean() source.data = ColumnDataSource(data=data).data slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days") slider.on_change("value", callback) doc = curdoc() doc.add_root(column(slider, plot))