In [1]:
%matplotlib inline
from matplotlib.collections import LineCollection
import matplotlib.pyplot as plt
from scipy import interpolate
import numpy as np
from numpy.random import rand
from ipywidgets import FloatSlider, interactive, IntSlider
import seaborn as sns
sns.set_context('poster')
sns.set_style('whitegrid')
# sns.set_style('darkgrid')
plt.rcParams['figure.figsize'] = 12, 8 # plotsize
In [3]:
def simple_example(amplitude=2.0, phase=0.0):
plt.rcParams['figure.figsize'] = 8,6
plt.figure()
x = np.linspace(-2*np.pi, 2*np.pi, 1000)
y = amplitude * np.sin(x + phase)
plt.plot(x, y)
plt.xlim(-3, 3)
plt.ylim(-2*np.pi, 2*np.pi)
plt.show()
return
In [4]:
amplitude_slider = FloatSlider(value=2.0, min=0, max=6.0, step=.1)
phase_slider = FloatSlider(value=0.0, min=-np.pi, max=np.pi, step=.10)
interactive(simple_example,
amplitude=amplitude_slider,
phase=phase_slider
)
In [ ]:
def spline_demo(num=14, smooth=0, seed=10, brush_strokes=30, alpha=0.5):
a = np.random.RandomState(seed=seed)
x = a.rand(num)
y = a.rand(num)
t = np.arange(0, 1.1, .1)
plt.rcParams['figure.figsize'] = 8, 8
plt.figure()
for brush_stroke in range(brush_strokes):
tck, u = interpolate.splprep(
[x + a.rand(num) / 10.0, y + a.rand(num) / 10.0], s=smooth)
unew = np.arange(0, 1.01, 0.001)
out = interpolate.splev(unew, tck)
plt.plot(out[0], out[1], alpha=alpha, c='black', linewidth=3.0)
plt.xlim(-1.5, 2.)
plt.ylim(-1.5, 2.)
plt.axis('off')
plt.show()
smooth_slider = FloatSlider(value=0, min=0, max=20.0, step=.1)
num_points_slider = IntSlider(value=8, min=4, max=20)
seed_slider = IntSlider(value=4, min=4, max=20)
brush_slider = IntSlider(value=1, min=1, max=20)
alpha_slider = FloatSlider(value=.5, min=0, max=1.0, step=.05)
w = interactive(
spline_demo,
smooth=smooth_slider,
num=num_points_slider,
seed=seed_slider,
brush_strokes=brush_slider,
alpha=alpha_slider)
w
In [ ]:
In [ ]: