from bokeh.plotting import figure, curdoc
from bokeh.models import ColumnDataSource
from bokeh.client import push_session

xs, ys = range(0,20)
sizes = [9] * len(xs)
ranges = range(0,19)

p = figure(x_range=ranges, y_range=ranges, width=500, height=500)
source = ColumnDataSource(data=dict(x=xs, y=ys, size=sizes))

# problem line
scatter = p.scatter('x', 'y', size = 'size', source = source)

def update():
    source.data['y'] = map(lambda x:x+1, source.data['y'])

session = push_session(curdoc())
curdoc().add_periodic_callback(update, 500)
session.show(p)
session.loop_until_closed()