Histograma de cores de imagens de plotagem usando matplotlib

Eu estou tentando gerar um histograma de cores de uma imagem. Eu estou usando PIL para ler arquivos de imagem e tentando traçar o mesmo através de matplotlib.

im = Image.open(sys.argv[1])  
w, h = im.size  
colors = im.getcolors(w*h)  #Returns a list [(pixel_count, (R, G, B))]

Atualizar: Depois de algumas tentativas e erros, este código traça o histograma, mas não as cores! (Leva laboriosamente longo consome toneladas de memória, mesmo para um 320 x 480 jpeg)

for idx, c in enumerate(colors):
    plt.bar(idx, c[0], color=hexencode(c[1]))

plt.show()

Onde,

def hexencode(rgb):
    return '#%02x%02x%02x' % rgb

Na execução, o programa começa a consumir memória infinita e nenhuma exibição é fornecida. O uso de memória do SO passou de <380 MB para> 2,5 GB em questão de alguns minutos; post que eu terminei a execução. Como posso resolver o problema?

Aqui está um exemplo de um histograma de cores da imagem com tons vermelhos dominantes:

questionAnswers(2)

yourAnswerToTheQuestion