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. 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. Here is some code that I have come up with so far: #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 > y2: colors.append(0) elif y1 < 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]) 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(). Continue reading...