Graphique à barres empilées matplotlib plus efficace - comment calculer les valeurs inférieures

J'ai besoin d'aide pour effectuer un ensemble de graphiques à barres empilées en python avec matlibplot. Mon code de base est en dessous, mais mon problème est de savoir comment générer de la valeur pour bas pour n'importe quel élément au-delà de la 2ème efficacement. Je peux obtenir l'exemple de graphique d'empiler correctement (toujours a,b,c,d, du bas vers le haut)

import numpy as np
import matplotlib.pyplot as plt

ind = np.arange(3)

a = [3,6,9]
b = [2,7,1]
c = [0,3,1]
d = [4,0,3]

p1 = plt.bar(ind, a, 1, color='#ff3333')
p2 = plt.bar(ind, b, 1, color='#33ff33', bottom=a)
p3 = plt.bar(ind, c, 1, color='#3333ff', bottom=[a[j] +b[j] for j in range(len(a))])
p4 = plt.bar(ind, d, 1, color='#33ffff', bottom=[a[j] +b[j] +c[j] for j in range(len(a))])

plt.show()

Mon code final pourrait très grand nombre de bars et de l'expansion constante de la fonction de base = [...] ne peuvent pas être la meilleure solution. Il serait génial si vous pouviez aussi expliquer comment j'ai besoin de dériver la valeur. Est-il une fonction numpy.

Merci beaucoup!!!
PS j'ai cherché une réponse, mais je n'ai pas compris ce que j'ai pu trouver.

source d'informationauteur 2705114-john