Cómo trazar una curva multicolor utilizando un solo comando de trazado en matplotlib

Si entiendo correctamente, la función:

matplotlib.pyplot.plot(x, y) 

traza len (x) -1 segmentos de línea separados: uno va de (x [0], y [0]) a (x [1], y [1]), uno va de (x [1], y [1 ]) a (x [2], y [2]), etc. En mi aplicación, quiero mostrar una curva que consiste en una serie de segmentos de línea que conectan puntos de datos de esta manera, pero hay un dato adicional ( z) asociado con la transición entre cada uno de estos puntos de datos, que quiero representar por el color del segmento de línea. Claramente una forma de hacer esto es la siguiente:

 for i in range(len(x)-1)): matplotlib.pyplot.plot(x[i:i+2],y[i:i+2], color=z[i]) 

pero ¿hay alguna forma de hacerlo que no implique una llamada separada a matplotlib.pyplot.plot para cada segmento de línea?

Debería poder utilizar matplotlib.collections.LineCollection que acepta un parámetro de colors (secuencia de tuplas RGBA).

Si implementas una barra de colores, algo similar a esto , entonces deberías poder hacerlo en una línea. El truco puede ser elegir una escala de colores que cambie en el orden de los segmentos de línea.