In [20]:
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure, show, output_notebook

import numpy as np

In [21]:
x = np.linspace(0, 2*np.pi, 2000)
y = np.sin(x)

In [22]:
output_notebook()


BokehJS successfully loaded.

In [23]:
from bokeh.models import ColumnDataSource

In [24]:
source = ColumnDataSource(data=dict(x=x, y=y))

p = figure(title="simple line example", plot_height=300, plot_width=600)
p.line(x, y, color="#2222aa", line_width=3, source=source, name="foo")


Out[24]:
<bokeh.models.renderers.GlyphRenderer at 0x110823710>

In [25]:
def update(f, w=1, A=1, phi=0):
    if   f == "sin": func = np.sin
    elif f == "cos": func = np.cos
    elif f == "tan": func = np.tan
    source.data['y'] = A * func(w * x + phi)
    source.push_notebook()

In [26]:
show(p)



In [27]:
from IPython.html.widgets import interact
interact(update, f=["sin", "cos", "tan"], w=(0,100), A=(1,10), phi=(0, 10, 0.1))


Out[27]:
<function __main__.update>

In [ ]: