Como dar cores personalizadas a um gráfico de barras pandas / matplotlib

Acabei de começar a usar o pandas / matplotlib como substituto para o Excel gerar gráficos de barras empilhados. Estou com um problema

(1) existem apenas 5 cores no mapa de cores padrão, portanto, se eu tiver mais de 5 categorias, as cores se repetem. Como posso especificar mais cores? Idealmente, um gradiente com uma cor inicial e uma cor final, e uma maneira de gerar dinamicamente n cores entre elas?

(2) as cores não são muito visualmente agradáveis. Como eu especifico um conjunto personalizado de n cores? Ou, um gradiente também funcionaria.

Um exemplo que ilustra ambos os pontos acima está abaixo:

  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)

E a saída é esta:

questionAnswers(3)

yourAnswerToTheQuestion