title: Matplotlib 3D scatter plot with color gradient
body: <p>How can I create a 3D plot with a color gradient for the points? See the example below, which works for a 2D scatter plot.</p>
  
  <p>Edit (thanks to Chris): What I'm expecting to see from the 3D plot is a color gradient of the points ranging from red to green as in the 2D scatter plot.
  What I see in the 3D scatter plot are only red points.</p>
  
  <p>Solution: for some reasons (related to the gradient example I copied elsewhere) I set xrange to len-1, which messes everything in the 3D plot.</p>
  
  <pre><code>import numpy as np
  import matplotlib.pyplot as plt
  from mpl_toolkits.mplot3d import Axes3D
  
  # Create Map
  cm = plt.get_cmap("RdYlGn")
  
  x = np.random.rand(30)
  y = np.random.rand(30)
  z = np.random.rand(30)
  #col = [cm(float(i)/(29)) for i in xrange(29)] # BAD!!!
  col = [cm(float(i)/(30)) for i in xrange(30)]
  
  # 2D Plot
  fig = plt.figure()
  ax = fig.add_subplot(111)
  ax.scatter(x, y, s=10, c=col, marker='o')  
  
  # 3D Plot
  fig = plt.figure()
  ax3D = fig.add_subplot(111, projection='3d')
  ax3D.scatter(x, y, z, s=10, c=col, marker='o')  
  
  plt.show()
  </code></pre>