Exemplo n.º 1
0
def modify_doc(doc):
    parambokeh.Widgets(smap,
                       continuous_update=True,
                       callback=smap.event,
                       on_init=True,
                       mode='server')
    panel = pp.Row(smap, smap.view)
    return panel.server_doc(doc=doc)
Exemplo n.º 2
0
def app(doc):

    x,y = SineWave()
    source = ColumnDataSource(data=dict(x=x, y=y))

    import numpy as np # see TODO below about ranges
    plot = figure(plot_height=400, plot_width=400,
                  tools="crosshair,pan,reset,save,wheel_zoom",
                  x_range=[0, 4*np.pi], y_range=[-2.5, 2.5])
    plot.line('x', 'y', source=source, line_width=3, line_alpha=0.6)

    def update_sinewave(sw,**kw):
        x,y = sw()
        source.data = dict(x=x, y=y)
        # TODO couldn't figure out how to update ranges
        #plot.x_range.start,plot.x_range.end=pobj.x_range
        #plot.y_range.start,plot.y_range.end=pobj.y_range
    
    parambokeh.Widgets(SineWave, mode='server', doc=doc, callback=update_sinewave)
    doc.add_root(row(plot, width=800))
Exemplo n.º 3
0
def modify_doc(doc):

    explorer = QAExplorer(rootdir='.')
    explorer.output = explorer.view()

    doc = parambokeh.Widgets(explorer,
                             continuous_update=False,
                             callback=explorer.event,
                             view_position='right',
                             mode='server')

    name_input = TextInput(value='selected', title="Save IDs as")
    save_button = Button(label='Save IDs', width=100)
    clear_button = Button(label='Clear saved IDs', width=100)
    saved_ids = PreText(text=','.join(explorer.saved_ids))

    def save_selected():
        explorer.save_selected(name_input.value)
        saved_ids.text = ','.join(explorer.saved_ids)

    def clear_ids():
        for f in [
                os.path.join(explorer.id_path, '{}.h5'.format(i))
                for i in explorer.saved_ids
        ]:
            os.remove(f)
        saved_ids.txt = ''

    save_button.on_click(save_selected)
    clear_button.on_click(clear_ids)

    doc.add_root(name_input)
    doc.add_root(save_button)
    doc.add_root(saved_ids)
    doc.add_root(clear_button)

    return doc
Exemplo n.º 4
0
def animate_update():
    year = slider.value + 1
    if year > end:
        year = start
    slider.value = year


def animate():
    if button.label == '\u25B6 Play':
        button.label = '\u23F8 Pause'
        curdoc().add_periodic_callback(animate_update, 500)
    else:
        button.label = '\u25B6 Play'
        curdoc().remove_periodic_callback(animate_update)


button = Button(label='\u25B6 Play', width=60)
button.on_click(animate)

widget = parambokeh.Widgets(cmap_picker, mode='raw')

# Combine the bokeh plot on plot.state with the widgets
layout = layout([
    [widget],
    [plot.state],
    [slider, button],
],
                sizing_mode='fixed')

curdoc().add_root(layout)
Exemplo n.º 5
0
        bounds=(0, 10),
        doc='Filter for Taxi Trips by Number of Passengers')
    output = parambokeh.view.Plot()

    def make_view(self, x_range=None, y_range=None, **kwargs):
        options = dict(width=800, height=475, xaxis=None, yaxis=None)
        map_tiles = gv.WMTS(tiles['ESRI']).opts(style=dict(alpha=self.alpha),
                                                plot=options)

        points = hv.Points(nyc_taxi,
                           kdims=[self.plot + '_x', self.plot + '_y'],
                           vdims=['passenger_count'])
        selected = points.select(passenger_count=self.passengers)
        taxi_trips = datashade(selected,
                               x_sampling=1,
                               y_sampling=1,
                               width=800,
                               height=475,
                               cmap=inferno,
                               dynamic=False)

        return map_tiles * taxi_trips


explorer = NYCTaxiExplorer(name="Taxis en NY")
explorer.output = hv.DynamicMap(explorer.make_view, streams=[explorer])
doc = parambokeh.Widgets(explorer,
                         view_position='right',
                         callback=explorer.event,
                         mode='server')
Exemplo n.º 6
0
             yaxis=None,
             bgcolor='black',
             show_grid=False)
opts2 = dict(width=1000, height=600, x_sampling=1, y_sampling=1, dynamic=False)


class OSMExplorer(hv.streams.Stream):
    alpha = param.Magnitude(default=0.75, doc="Map opacity")
    colormap = param.ObjectSelector(default=cm_n["fire"],
                                    objects=cm_n.values())

    def make_view(self, x_range, y_range, **kwargs):
        tiles = map_tiles.options(alpha=self.alpha, **opts1)
        points = hv.Points(df, ['x', 'y'])
        return tiles * datashade(points,
                                 cmap=self.colormap,
                                 x_range=x_range,
                                 y_range=y_range,
                                 **opts2)


explorer = OSMExplorer(name="Open Street Map GPS")
dmap = hv.DynamicMap(explorer.make_view, streams=[explorer, RangeXY()])

plot = hv.renderer('bokeh').instance(mode='server').get_plot(dmap)
parambokeh.Widgets(explorer,
                   view_position='right',
                   callback=explorer.event,
                   plots=[plot.state],
                   mode='server')
Exemplo n.º 7
0
    element = param.ObjectSelector(default=hv.Curve,
                                   objects=[hv.Curve, hv.Scatter, hv.Area],
                                   precedence=0)

    amplitude = param.Number(default=2, bounds=(2, 5))

    frequency = param.Number(default=2, bounds=(1, 10))

    output = parambokeh.view.Plot()

    def view(self, *args, **kwargs):
        return self.element(
            self.amplitude * np.sin(np.linspace(0, np.pi * self.frequency)),
            vdims=[hv.Dimension('y',
                                range=(-5, 5))])(style=dict(color=self.color))

    def event(self, **kwargs):
        if not self.output or any(k in kwargs for k in ['color', 'element']):
            self.output = hv.DynamicMap(self.view, streams=[self])
        else:
            super(CurveExample, self).event(**kwargs)


example = CurveExample(name='HoloViews Example')
doc = parambokeh.Widgets(example,
                         callback=example.event,
                         on_init=True,
                         mode='server',
                         view_position='right',
                         doc=curdoc())
Exemplo n.º 8
0
    districts = hv.Polygons([gv.util.geom_to_array(dist.data) for dist in districts])
    # districts.opts(plot=dict(fill_color=None, line_width=1.5))
    return districts


class DistrictExplorer(hv.streams.Stream):
    district_type = param.ObjectSelector(objects=('US House',
                                                  'State House',
                                                  'State Senate'),
                                         default='US House')

    def make_view(self, **kwargs):
        districts = hv.DynamicMap(load_district_shapefile, streams=[self])
        options = dict(width=1000, height=600, xaxis=None, yaxis=None,
                       show_grid=False)
        tiles.opts(plot=options)
        return tiles * shaded * color_points * districts

    # def event(self, **kwargs):
    #     if not self.output or any(k in kwargs for k in ['District type']):
    #         self.output = hv.DynamicMap(self.view, streams=[self])
    #     else:
    #         super(DistrictExplorer, self).event(**kwargs)


explorer = DistrictExplorer(name="District explorer")
dmap = explorer.make_view()
plot = hv.renderer('bokeh').instance(mode='server').get_plot(dmap)
parambokeh.Widgets(explorer, continuous_update=True, callback=explorer.event,
                   on_init=True, plots=[plot.state], mode='server')
Exemplo n.º 9
0
                             self.station_two,
                             self.variable)

    def event(self, **kwargs):
        # clear canvas and replace
        if not self.output or any(k in kwargs for k in ['station_one',
                                                        'station_two']):
            self.output = hv.DynamicMap(self.view, streams=[self])
        else: # update canvas with new variable
            super(Seasontology, self).event(**kwargs)


# initialize
cached_wx_dfs = {}

this_year = pd.datetime.now().year
for pkl in glob.iglob(os.path.join(DATA, '*.pkl')):
    # clean up cached files if stale
    if str(this_year) not in pkl:
        os.remove(pkl)

# pre-generate delimiters so it doesn't have to be generated everytime
season_vlines = _season_vlines()
selector = Seasontology(name='Seasontology')
parambokeh.Widgets(selector,
                   width=250,
                   on_init=True,
                   mode='server',
                   view_position='right',
                   callback=selector.event)
Exemplo n.º 10
0
    """Example Parameterized class"""
    log = []
    x = param.Number(default=1.0,
                     bounds=(0, 100),
                     precedence=0,
                     doc="X position")
    write_to_log = param.Action(lambda obj: obj.log.append(
        (dt.datetime.now(), obj.x)),
                                doc="""Record value of x and timestamp.""",
                                precedence=1)


##### create a properties frame for Example

import parambokeh
w = parambokeh.Widgets(Example, mode='server')

##### display value of Example.log in bokeh app

from bokeh.io import curdoc
from bokeh.layouts import layout
from bokeh.models import Div

log = Div()


def update_log():
    log.text = "<br />".join([
        "%s -- %s" % (t[0].strftime('%H:%M:%S.%f'), t[1]) for t in Example.log
    ])
    import datetime
Exemplo n.º 11
0
    location = param.ObjectSelector(default='dropoff',
                                    objects=['dropoff', 'pickup'])

    def make_view(self, x_range, y_range, **kwargs):
        map_tiles = tiles(style=dict(alpha=self.alpha), plot=tile_options)
        points = hv.Points(df,
                           kdims=[self.location + '_x', self.location + '_y'],
                           vdims=['dropoff_hour'])
        if self.hour != (0, 24): points = points.select(dropoff_hour=self.hour)
        taxi_trips = datashade(points,
                               x_sampling=1,
                               y_sampling=1,
                               cmap=self.colormap,
                               dynamic=False,
                               x_range=x_range,
                               y_range=y_range,
                               width=1000,
                               height=600)
        return map_tiles * taxi_trips


selector = NYCTaxiExplorer(name="NYC Taxi Trips")
dmap = hv.DynamicMap(selector.make_view, streams=[selector, RangeXY()])
plot = hv.renderer('bokeh').instance(mode='server').get_plot(dmap)

parambokeh.Widgets(selector,
                   view_position='right',
                   callback=selector.event,
                   mode='server',
                   plots=[plot.state])
Exemplo n.º 12
0
    output = parambokeh.view.Plot()

    def make_view(self, x_range, y_range, alpha, colormap, plot, passengers,
                  **kwargs):
        map_tiles = tiles(style=dict(alpha=alpha), plot=tile_options)
        points = hv.Points(df,
                           kdims=[plot + '_x', plot + '_y'],
                           vdims=['passenger_count'])
        if passengers != passenger_counts:
            points = points.select(passenger_count=passengers)
        taxi_trips = datashade(points,
                               x_sampling=1,
                               y_sampling=1,
                               cmap=colormap,
                               dynamic=False,
                               x_range=x_range,
                               y_range=y_range)
        return map_tiles * taxi_trips


selector = NYCTaxiExplorer(name="NYC Taxi Trips")
selector.output = hv.DynamicMap(selector.make_view,
                                streams=[selector,
                                         RangeXY(),
                                         PlotSize()])

doc = parambokeh.Widgets(selector,
                         view_position='right',
                         callback=selector.event,
                         mode='server')