title: How to plot the lines first and points last in matplotlib
body: <p>I have a simple plot with several sets of points and lines connecting each set.  I want the points to be plotted on top of the lines (so that the line doesn't show inside the point).  Regardless of order of the <code>plot</code> and <code>scatter</code> calls, this plot comes out the same, and not as I'd like.  Is there a simple way to do it?</p>
  
  <pre><code>import math
  import matplotlib.pyplot as plt
  
  def poisson(m):
      def f(k):
          e = math.e**(-m)
          f = math.factorial(k)
          g = m**k
          return g*e/f
      return f
  
  R = range(20)
  L = list()
  means = (1,4,10)
  for m in means:
      f = poisson(m)
      L.append([f(k) for k in R])
  colors = ['r','b','purple']
  
  for c,P in zip(colors,L):
      plt.plot(R,P,color='0.2',lw=1.5)
      plt.scatter(R,P,s=150,color=c)
  
  ax = plt.axes()
  ax.set_xlim(-0.5,20)
  ax.set_ylim(-0.01,0.4)
  plt.savefig('example.png')
  </code></pre>