import numpy as np
import matplotlib.pyplot as plt
#%matplotlib inline
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
from matplotlib.animation import FuncAnimation
from IPython.display import HTML
def wave_anim(k, c):
x = np.linspace(-5, 5, 1000)
fig, ax = plt.subplots()
im, = ax.plot(x, np.sin(x))
update = lambda t: im.set_data(x, np.sin(k*x-c*k*t))
anim = FuncAnimation(fig, update, interval=100, frames=int(2*np.pi/(c*k)))
return anim
display = lambda k, c: HTML(wave_anim(k, c).to_jshtml())
interact(display, k=(0.1, 5, 0.1), c=(0.01, 0.5, 0.01))
A Jupyter Widget
<function __main__.<lambda>>