Wykreśl histogram kolorów obrazu za pomocą matplotlib

Próbuję wygenerować histogram kolorów obrazu. Używam PIL do odczytywania plików graficznych i próbuję wykreślić to samo za pomocą matplotlib.

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

Aktualizacja: Po kilku próbach i błędach kod ten przedstawia histogram, ale nie kolory! (Zajmuje dużo czasu, zużywając mnóstwo pamięci nawet przy 320 x 480 jpeg)

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

plt.show()

Gdzie,

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

Podczas wykonywania program zaczyna konsumować nieskończoną pamięć i nie jest wyświetlany żaden ekran. Wykorzystanie pamięci systemu operacyjnego wyniosło od <380 MB do> 2,5 GB w ciągu kilku minut; post, który zakończyłem egzekucją. Jak mogę rozwiązać problem?

Oto przykład kolorowego histogramu obrazu z dominującymi odcieniami czerwieni:

questionAnswers(2)

yourAnswerToTheQuestion