title: Manually set color of points in legend
body: <p>I'm making a scatter plot which looks like this:</p>
  
  <p><img src="https://i.stack.imgur.com/wG6Np.png" alt="enter image description here"></p>
  
  <p>(MWE at bottom of question)</p>
  
  <p>As can be seen in the image above the colors of the points in the legend are set to blue automatically by <code>matplotlib</code>. I need to set this points to some other color not present in the colormap (ie: black) so they won't generate confusion with the colors associated with said colormap.</p>
  
  <p>I looked around but the <a href="http://matplotlib.org/api/legend_api.html">matplotlib.legend</a> module does not seem to accept a <code>color</code> keyword. Is there any way to do this?</p>
  
  <hr>
  
  <p>Here's the MWE:</p>
  
  <pre><code>import matplotlib.pyplot as plt
  import numpy as np
  
  def rand_data():
      return np.random.uniform(low=0., high=1., size=(100,))
  
  # Generate data.
  x, y, x2, x3 = [rand_data() for i in range(4)]
  # This data defines the markes and labels used.
  x1 = np.random.random_integers(7, 9, size=(100,))
  
  # Order all lists so smaller points are on top.
  order = np.argsort(-np.array(x2))
  # Order x and y.
  x_o, y_o = np.take(x, order), np.take(y, order)
  # Order list related to markers and labels.
  z1 = np.take(x1, order)
  # Order list related to sizes.
  z2 = np.take(x2, order)
  # Order list related to colors.
  z3 = np.take(x3, order)
  
  plt.figure()
  cm = plt.cm.get_cmap('RdYlBu')
  
  # Scatter plot where each value in z1 has a different marker and label
  # assigned.
  mrk = {7: ('o', '7'), 8: ('s', '8'), 9: ('D', '9')}
  for key, value in mrk.items():
  
      s1 = (z1 == key)
      plt.scatter(x_o[s1], y_o[s1], marker=value[0], label=value[1],
          s=z2[s1] * 100., c=z3[s1], cmap=cm, lw=0.2)
  
  # Plot colorbar
  plt.colorbar()
  
  # Plot legend.
  plt.legend(loc="lower left", markerscale=0.7, scatterpoints=1, fontsize=10)
  
  plt.show()
  </code></pre>