Jak nadać wykresowi słupkowemu pandas / matplotlib niestandardowe kolory

Właśnie zacząłem używać pandas / matplotlib jako zamiennika programu Excel do generowania skumulowanych wykresów słupkowych. Mam problem

(1) Domyślna mapa kolorów ma tylko 5 kolorów, więc jeśli mam więcej niż 5 kategorii, kolory się powtarzają. Jak mogę określić więcej kolorów? Idealnie, gradient o kolorze początkowym i kolorze końcowym oraz sposób dynamicznego generowania n kolorów pomiędzy nimi?

(2) kolory nie są zbyt atrakcyjne wizualnie. Jak określić niestandardowy zestaw n kolorów? Albo gradient również zadziała.

Przykład ilustrujący oba powyższe punkty znajduje się poniżej:

  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)

A wynik jest następujący:

questionAnswers(3)

yourAnswerToTheQuestion