0% found this document useful (0 votes)
71 views23 pages

3 - Introducing The Bokeh Server

This document discusses interactive data visualization using Bokeh. It provides examples of creating basic Bokeh apps with plots and widgets, connecting sliders and dropdown menus to plots, and using button callbacks. Apps can be run locally using Bokeh serve or hosted on platforms like Heroku.

Uploaded by

SubhadeepPal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views23 pages

3 - Introducing The Bokeh Server

This document discusses interactive data visualization using Bokeh. It provides examples of creating basic Bokeh apps with plots and widgets, connecting sliders and dropdown menus to plots, and using button callbacks. Apps can be run locally using Bokeh serve or hosted on platforms like Heroku.

Uploaded by

SubhadeepPal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

INTERACTIVE DATA VISUALIZATION WITH BOKEH

Introducing the
Bokeh Server
Interactive Data Visualization with Bokeh
Interactive Data Visualization with Bokeh
Interactive Data Visualization with Bokeh

Basic App Outline


outline.py

from bokeh.io import curdoc

# Create plots and widgets

# Add callbacks

# Arrange plots and widgets in layouts

curdoc().add_root(layout)
Interactive Data Visualization with Bokeh

Running Bokeh Applications


Run single module apps at the shell or Windows command prompt:

bokeh serve --show myapp.py

“Directory” style apps run similarly:

bokeh serve --show myappdir/


INTERACTIVE DATA VISUALIZATION WITH BOKEH

Let’s practice!
INTERACTIVE DATA VISUALIZATION WITH BOKEH

Connecting Sliders
to Plots
Interactive Data Visualization with Bokeh

A slider example
slider.py

from bokeh.io import curdoc


from bokeh.layouts import column
from bokeh.models import ColumnDataSource, Slider
from bokeh.plotting import figure
from numpy.random import random

N = 300
source = ColumnDataSource(data={'x': random(N), 'y': random(N)})

# Create plots and widgets


plot = figure()
plot.circle(x= 'x', y='y', source=source)

slider = Slider(start=100, end=1000, value=N,


step=10, title='Number of points')
Interactive Data Visualization with Bokeh

A slider example
slider.py

# (continued)

# Add callback to widgets


def callback(attr, old, new):
N = slider.value
source.data={'x': random(N), 'y': random(N)}
slider.on_change('value', callback)

# Arrange plots and widgets in layouts


layout = column(slider, plot)

curdoc().add_root(layout)
Interactive Data Visualization with Bokeh
INTERACTIVE DATA VISUALIZATION WITH BOKEH

Let’s practice!
INTERACTIVE DATA VISUALIZATION WITH BOKEH

Updating Plots from


Dropdown Menus
Interactive Data Visualization with Bokeh

A Select example
select.py

from bokeh.io import curdoc


from bokeh.layouts import column
from bokeh.models import ColumnDataSource, Select
from bokeh.plotting import figure
from numpy.random import random, normal, lognormal

N = 1000
source = ColumnDataSource(data={'x': random(N), 'y': random(N)})

# Create plots and widgets


plot = figure()
plot.circle(x='x', y='y', source=source)

menu = Select(options=['uniform', 'normal', 'lognormal'],


value='uniform', title='Distribution')
Interactive Data Visualization with Bokeh

A Select example
select.py

# (continued)

# Add callback to widgets


def callback(attr, old, new):
if menu.value == 'uniform': f = random
elif menu.value == 'normal': f = normal
else: f = lognormal
source.data={'x': f(size=N), 'y': f(size=N)}
menu.on_change('value', callback)

# Arrange plots and widgets in layouts


layout = column(menu, plot)

curdoc().add_root(layout)
Interactive Data Visualization with Bokeh

A Select example
INTERACTIVE DATA VISUALIZATION WITH BOKEH

Let’s practice!
INTERACTIVE DATA VISUALIZATION WITH BOKEH

Bu!ons
Interactive Data Visualization with Bokeh

Bu!on callbacks
select.py

from bokeh.models import Button

button = Button(label='press me')

def update():

# Do something interesting

button.on_click(update)
Interactive Data Visualization with Bokeh

Bu!on types
select.py

from bokeh.models import CheckboxGroup, RadioGroup, Toggle

toggle = Toggle(label='Some on/off', button_type='success')

checkbox = CheckboxGroup(labels=['foo', 'bar', 'baz'])

radio = RadioGroup(labels=['2000', '2010', '2020'])

def callback(active):
# Active tells which button is active
Interactive Data Visualization with Bokeh

Bu!on types
Plain button

Toggle

Radio Group

Checkbox Group
INTERACTIVE DATA VISUALIZATION WITH BOKEH

Let’s practice!
INTERACTIVE DATA VISUALIZATION WITH BOKEH

Hosting
Applications
Interactive Data Visualization with Bokeh

Bokeh Application Hosting

https://anaconda.org

You might also like