title: Jupyter Notebook: duplicated scatter plot using when using ipywidgets
body: <p>I'm trying to control the display of a scatter plot with a checkbox. When I built it using the interact function it worked as expected. The plot was shown or hidden based on the value in the checkbox.</p>
  
  <pre><code>import matplotlib.pyplot as plt
  from ipywidgets import interact, widgets
  %matplotlib inline
  
  def on_change(Display):
      if Display == True:
          plt.scatter(x,y)
          plt.show()  
      return Display
  
  interact(on_change, Display=False);
  </code></pre>
  
  <p>When I tried to do the same thing using the observe function every time I clicked on the checkbox I get an additional plot displayed below. What do I need to do to get it to redraw the same plot so it works like the example above?</p>
  
  <p>I suppose something in the interact example is clearing the display but it's not clear how to do this manually.</p>
  
  <pre><code>import matplotlib.pyplot as plt
  from ipywidgets import interact, widgets
  %matplotlib inline
  
  x = [1,2,3,4,5,6,7,8]
  y = [5,2,4,2,1,4,5,2]
  
  def on_change(change):
      if change['new'] == True:
          scat = plt.scatter(x,y)
          plt.show()   
  
  cb = widgets.Checkbox(False, description = "Display")
  cb.observe(on_change, names='value')
  display(cb)
  </code></pre>