Interact Exercise 2

Imports


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


:0: FutureWarning: IPython widgets are experimental and may change in the future.

Plotting with parameters

Write a plot_sin1(a, b) function that plots $sin(ax+b)$ over the interval $[0,4\pi]$.

  • Customize your visualization to make it effective and beautiful.
  • Customize the box, grid, spines and ticks to match the requirements of this data.
  • Use enough points along the x-axis to get a smooth plot.
  • For the x-axis tick locations use integer multiples of $\pi$.
  • For the x-axis tick labels use multiples of pi using LaTeX: $3\pi$.

In [6]:
def plot_sine1(a, b):
    x=range(0, 4*np.pi)
    y= np.sin(a*x + b)
plt.plot()
                                      #for x in range(0, 4*np.pi, np.dtype(float)):
                                          #plt.plot(a, b, x, np.sin(a*x+b))


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-6-349d4fc94430> in <module>()
      2     x=range(0, 4*np.pi)
      3     y= np.sin(a*x + b)
----> 4 plt.plot(y)
      5                                       #for x in range(0, 4*np.pi, np.dtype(float)):
      6                                           #plt.plot(a, b, x, np.sin(a*x+b))

NameError: name 'y' is not defined

In [4]:
plot_sine1(5.0, 3.4)


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-4-ce136ce182fe> in <module>()
----> 1 plot_sine1(5.0, 3.4)

<ipython-input-3-1db08b2d87a9> in plot_sine1(a, b)
      1 def plot_sine1(a, b):
----> 2     x=arange(0, 4*np.pi)
      3     y= np.sin(a*x + b)
      4 plt.plot(plot_sine1)
      5                                       #for x in range(0, 4*np.pi, np.dtype(float)):

NameError: name 'arange' is not defined

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 [ ]:
# YOUR CODE HERE
raise NotImplementedError()

In [ ]:
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:

  • dashed red: r--
  • blue circles: bo
  • dotted black: k.

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 [ ]:
# YOUR CODE HERE
raise NotImplementedError()

In [ ]:
plot_sine2(4.0, -1.0, 'r--')

Use interact to create a UI for plot_sine2.

  • Use a slider for a and b as above.
  • Use a drop down menu for selecting the line style between a dotted blue line line, black circles and red triangles.

In [ ]:
# YOUR CODE HERE
raise NotImplementedError()

In [ ]:
assert True # leave this for grading the plot_sine2 exercise