In [1]:
%matplotlib inline
from matplotlib import pyplot as plt
import numpy as np
In [2]:
from IPython.html.widgets import interact, interactive, fixed
from IPython.display import display
Write a plot_sin1(a, b) function that plots $sin(ax+b)$ over the interval $[0,4\pi]$.
$3\pi$.
In [3]:
def plot_sine1(a,b):
labels = ['0','$\pi$.','$2\pi$.','$3\pi$.','$4\pi$.']
x = [0,np.pi,2*np.pi,3*np.pi,4*np.pi]
t = np.arange(0,4*np.pi,.01);
plt.figure(figsize=(15,5));
plt.plot(t,np.sin(a*t+b));
plt.xlim(0,4*np.pi);
plt.xticks(x, labels);
plt.xlabel('x')
plt.ylabel('sin(ax+b)')
plt.title('Plot if Sin(ax+b) vs x')
plt.tick_params(axis='x',top='off')
plt.tick_params(axis='y',right='off')
plt.tick_params(axis='x',top='off',direction='out')
plt.tick_params(axis='y',right='off',direction='out')
In [4]:
plot_sine1(5, 3.4)
Then use interact to create a user interface for exploring your function:
a should be a floating point slider over the interval $[0.0,5.0]$ with steps of $0.1$.b should be a floating point slider over the interval $[-5.0,5.0]$ with steps of $0.1$.
In [5]:
interact(plot_sine1,a=(0.0,5.0,.1),b=(-5.0,5.0,.1));
In [6]:
assert True # leave this for grading the plot_sine1 exercise
In matplotlib, the line style and color can be set with a third argument to plot. Examples of this argument:
r--bok.Write a plot_sine2(a, b, style) function that has a third style argument that allows you to set the line style of the plot. The style should default to a blue line.
In [7]:
def plot_sine2(a,b,style):
labels = ['0','$\pi$.','$2\pi$.','$3\pi$.','$4\pi$.']
x = [0,np.pi,2*np.pi,3*np.pi,4*np.pi]
t = np.arange(0,4*np.pi,.1);
plt.figure(figsize=(15,5));
plt.plot(t,np.sin(a*t+b),style);
plt.xlim(0,4*np.pi);
plt.xticks(x, labels);
plt.xlabel('x')
plt.ylabel('y')
plt.title('Plot if Sin(x) vs x')
plt.tick_params(axis='x',top='off')
plt.tick_params(axis='y',right='off')
plt.tick_params(axis='x',top='off',direction='out')
plt.tick_params(axis='y',right='off',direction='out')
In [8]:
plot_sine2(4.0, -1.0, 'r--')
Use interact to create a UI for plot_sine2.
a and b as above.
In [9]:
interact(plot_sine2,a=(0.0,5.0,.1),b=(-5.0,5.0,.1),style={'Dotted Blue Line': 'b.', 'Black Circles': 'ko', 'Red Triangles': 'r^'});
In [10]:
assert True # leave this for grading the plot_sine2 exercise