Having line color vary with data index for line graph in matplotlib?

Catherine Georgia picture Catherine Georgia · Dec 20, 2012 · Viewed 20.4k times · Source

So I have a 2D array of data producing a plot of many timeseries on the same axes. At the moment, the colour of each line just cycles through and doesn't mean anything.

I want to somehow map the colour of each line to the index of its data - so a set of data with a low index appears red and then fades to blue at a high index.

To clarify, each individual line should be the same colour throughout, not fading with time. The difference should be between each line.

Thankyou!

Answer

Rutger Kassies picture Rutger Kassies · Dec 20, 2012

Often you pass a colormap to a plotting function, but you can also pass a number or array to a colormap and get the colors in return.

So to color each line according to a variable, do something like this:

numlines = 20

for i in np.linspace(0,1, numlines):
    plt.plot(np.arange(numlines),np.tile([i],numlines), linewidth=4, color=plt.cm.RdYlBu(i))

enter image description here