Olá, pessoal!
Fiz o exercício em questão por partes, porém as barras não aparecem como no exempo, ficando duas barras pretas do mesmo tamanho. Verifiquei o código, está igual à resposta.
Fiquei na dúvida também do porquê que o array série e cores possuem o 'i': serie[i] e cores[i].
Agradeço pela ajuda!
<canvas width = "600" height = "400"></canvas>
<script>
function desenhaRetangulo(x, y, largura, altura, cor) {
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
pincel.fillStyle = cor;
pincel.fillRect(x, y, largura, altura);
pincel.strokeStyle = "black";
pincel.strokeRect(x, y, largura, altura);
}
function desenhaTexto(x, y, texto) {
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
pincel.font = "15px Georgia";
pincel.fillStyle = "black";
pincel.fillText(texto, x, y);
}
/*
desenhaRetangulo(100, 100, 250, 150, "green");
desenhaTexto(400, 200, "Mensagem de Teste", "red", "24px Arial");
*/
function desenhaBarra(x, y, serie, cores, texto) {
desenhaTexto(x, y - 10, texto);
var somaAltura = 0
for (var i = 0; i < serie.length; i++) {
var altura = serie[i];
desenhaRetangulo(x, y, somaAltura, 50, altura, cores[i]);
somaAltura = somaAltura + altura;
}
}
var cores = ["blue", "green", "yellow", "red"];
var serie2015 = [50, 25, 20, 5];
var serie2016 = [65, 20, 13, 2];
desenhaBarra(50, 50, serie2015, cores, "2015");
desenhaBarra(150, 50, serie2016, cores, "2016");
</script>