Cómo dar un gráfico de barras pandas / matplotlib colores personalizados

Acabo de comenzar a usar pandas / matplotlib como reemplazo de Excel para generar gráficos de barras apiladas. Me estoy encontrando con un problema

(1) solo hay 5 colores en el mapa de colores predeterminado, así que si tengo más de 5 categorías, los colores se repiten. ¿Cómo puedo especificar más colores? Idealmente, ¿un degradado con un color de inicio y un color final, y una forma de generar dinámicamente n colores en medio?

(2) los colores no son muy agradables visualmente. ¿Cómo especifico un conjunto personalizado de n colores? O, un gradiente también funcionaría.

A continuación se muestra un ejemplo que ilustra los dos puntos anteriores:

  4 from matplotlib import pyplot
  5 from pandas import *
  6 import random
  7 
  8 x = [{i:random.randint(1,5)} for i in range(10)]
  9 df = DataFrame(x)
 10 
 11 df.plot(kind='bar', stacked=True)

Y la salida es esta:

Respuestas a la pregunta(3)

Su respuesta a la pregunta