title: resetting points of an already plotted scatter in matplotlib
body: <p>if I have a scatter plot in matplotlib that returns a CircleCollection:</p>
  
  <p><code>coll = plt.scatter(rand(5), rand(5), c="k")</code></p>
  
  <p>how can I reset the colors of just specific points? I notice that <code>coll</code> is not iterable. I want to just alter the face/edge colors of already plotted points, although they already have a color set from the initial <code>plt.scatter</code> call. How can this be done?</p>
  
  <p>For example: just change the color of the second point plotted, e.g.:</p>
  
  <p><code>coll[1].set_color("r") # this does not work, coll not indexable this way</code></p>
  
  <p>I know I can pass a vector of colors to <code>c=</code> in <code>scatter</code> but I'd like to intentionally reset the points later, since the colors are not known for all the points at the time when <code>plt.scatter</code> is initially called. </p>
  
  <p><em>edit</em>: further explanation. I am looking for the simplest way to color points in a scatter based on different conditions. if <code>points</code> is a two-d array and you plot it with <code>scatter(points[:, 0], points[:, 1], c-"k")</code>, it's convenient to later on based on certain conditions, e.g.</p>
  
  <pre><code># replot certain points in red with alpha
  selected = points[:, 0] &gt; 0.5
  plt.scatter(selected[:, 0], selected[:, 1], c="r", alpha=0.5)
  </code></pre>
  
  <p>here I replot over the old points but this is messy since the new points are plotted with an alpha, so it will not give the desired effect. The various conditions according to which points have to be re-colored might be complex and happen later than when the initial scatter is made, so it's convenient to just be able to change the color of an existing point, rather than split the points up based on conditions and plot them all separately.</p>