Pessoal, comentei algumas duvidas no código. Não sei dizer se as duvidas que eu estou tendo são duvidas de interpretação ou de lógica. Mas, peço que me ajudem...
function desenhaBarra(x, y, serie, cores, texto) { // até aqui, tudo bem...
desenhaTexto(x, y - 10, texto); //foi chamada uma função, dentro da função desenhaBarra()
var somaAltura = 0; //aqui, é declarada a variavel que representará a altura dos blocos.
for (var i = 0; i < serie.length; i++) { //extrutura para o laço, ok...
var altura = serie[i]; // altura, recebe serie[indice]... de onde vem isso!?
desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i]); //ok, cores está declarado ali em baixo do loop.
somaAltura = somaAltura + altura; //incremento para somaAltura? blz, mas de onde vem a altura mesmo???
}
}
//porque essas váriaveis estão declaradas fora do bloco?
//e porque no fim do código e não no começo?
var cores = ['blue','green','yellow', 'red'];
var serie2015 = [50,25,20,5];
var serie2016 = [65,20,13,2]; //ali no loop, foi usado apenas, serie[i] e não serie20xx...
desenhaBarra(150, 50, serie2016, cores, '2016'); //serie[i] é usada aqui??? quando passamos a
desenhaBarra(50, 50, serie2015, cores, '2015'); // array na chamada da função????
</script>