title: Can I make a multi-color line in matplotlib?
body: <p>I am trying to create a colored line with certain conditions. Basically I would like to have the line colored red when pointing down on the y axis, green when pointing up and blue when neither.</p>
  <p>I played around with some similar examples I found but I have never been able to convert them to work with plot() on an axis. Just wondering how this could be done.</p>
  <p>Here is some code that I have come up with so far:</p>
  <pre><code>#create x,y coordinates
  x = numpy.random.choice(10,10)
  y = numpy.random.choice(10,10)
  
  #create an array of colors based on direction of line (0=r, 1=g, 2=b)
  colors = []
  #create an array that is one position away from original 
  #to determine direction of line 
  yCopy = list(y[1:])
  for y1,y2 in zip(y,yCopy):
      if y1 &gt; y2:
          colors.append(0)
      elif y1 &lt; y2:
          colors.append(1)
      else:
          colors.append(2)
  #add tenth spot to array as loop only does nine
  colors.append(2)
  
  #create a numpy array of colors
  categories = numpy.array(colors)
  
  #create a color map with the three colors
  colormap = numpy.array([matplotlib.colors.colorConverter.to_rgb('r'),matplotlib.colors.colorConverter.to_rgb('g'),matplotlib.colors.colorConverter.to_rgb('b')])
  
  #plot line
  matplotlib.axes.plot(x,y,color=colormap[categories])
  </code></pre>
  <p>Not sure how to get plot() to accept an array of colors. I always get an error about the format type used as the color. Tried heximal, decimal, string and float. Works perfect with scatter().</p>