Dibujar una barra de colores a un lado de un trazado de líneas, usando Matplotlib

Estoy tratando de agregar una barra de color en un gráfico, pero no entiendo cómo funciona. El problema es que hago mi propio código de color por:

x = np.arange(11) ys = [i+x+(i*x)**2 for i in range(11)] colors = cm.rainbow(np.linspace(0, 1, len(ys))) 

y los colors[i] me darán un nuevo color. Luego uso funciones (caseras) para seleccionar los datos relevantes y trazarlos en consecuencia. Esto se vería algo así:

 function(x,y,concentration,temperature,1,37,colors[0]) function(x,y,concentration,temperature,2,37,colors[1]) # etc 

Ahora quiero agregar los colores en una barra de colores, con tags que puedo cambiar. ¿Cómo hago esto?

He visto varios ejemplos en los que grafica todos los datos como una matriz, con barras de color automatizadas, pero aquí grafico los datos uno por uno (mediante el uso de funciones para seleccionar los datos relevantes).

EDITAR:

La función (x, y, concentración, temperatura, 1,37, colores [0]) tiene este aspecto (simplificado):

 def function(x,y,c,T,condition1,condition2,colors): import matplotlib.pyplot as plt i=0 for element in c: if element == condition1: if T[i]==condition2: plt.plot(x,y,color=colors,linewidth=2) i=i+1 return 

Dibujando una barra de colores a un lado una línea.

Haga un mapa de mi solución (simplemente utilicé 11 senos de diferentes amplitudes) para su problema (como le dije, es difícil de entender de lo que escribió en su Q).

 import matplotlib import numpy as np from matplotlib import pyplot as plt # an array of parameters, each of our curves depend on a specific # value of parameters parameters = np.linspace(0,10,11) # norm is a class which, when called, can normalize data into the # [0.0, 1.0] interval. norm = matplotlib.colors.Normalize( vmin=np.min(parameters), vmax=np.max(parameters)) # choose a colormap c_m = matplotlib.cm.cool # create a ScalarMappable and initialize a data structure s_m = matplotlib.cm.ScalarMappable(cmap=c_m, norm=norm) s_m.set_array([]) # plotting 11 sines of varying amplitudes, the colors are chosen # calling the ScalarMappable that was initialised with c_m and norm x = np.linspace(0,np.pi,31) for parameter in parameters: plt.plot(x, parameter*np.sin(x), color=s_m.to_rgba(parameter)) # having plotted the 11 curves we plot the colorbar, using again our # ScalarMappable plt.colorbar(s_m) # That's all, folks plt.show() 

Ejemplo

Curvas + mapa de colores

Expresiones de gratitud

Un problema similar, sobre un diagtwig de dispersión