Inventei de fazer uma legenda, eu até fiz o código normal para eu me localizar e entender o que precisava ser feito (que claramente deu certo), acontece que eu quis fazer um loop para diminuir o quanto que escrevo e é ai que está dando tudo errado. Nessa tentativa de dar loop, aparece tudo certinho, na posição que eu queria, porém não consigo deixar ela com as cores e textos que deveria, fica quadradinhos pretos e como texto fica escrito 'undefined' Uma boa alma para me ajudar a clarear a mente e fazer esse código dar certo? kkk
Obs.: Sendo sincera estou com um pouco de dificuldade com o array e sua repetição!! Não consigo muito entender ele bem, estou quebrando a cabeça kk.
<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);
}
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;
}
}
function desenhaLegenda (x, y) {
desenhaTexto(250, 65, 'Legenda');
var somaAltura = 0;
for(var i = 0; i < 4; i++) {
var altura = 20;
desenhaRetangulo(x, y + somaAltura, 10, 10, cores);
desenhaTexto(270, 90 + somaAltura, textos);
somaAltura = somaAltura + altura;
}
/*
desenhaRetangulo(250, 80, 10, 10, cores);
desenhaTexto(270, 90, 'Chrome');
desenhaRetangulo(250, 100, 10, 10, 'green');
desenhaTexto(270, 110, 'Firefox');
desenhaRetangulo(250, 120, 10, 10, 'yellow');
desenhaTexto(270, 130, 'Safari');
desenhaRetangulo(250, 140, 10, 10, 'red');
desenhaTexto(270, 150, 'Outros');
*/
}
var cores = ['blue','green','yellow', 'red'];
var textos = ['Chrome', 'Firefox', 'Safari', 'Outros'];
var serie2015 = [50,25,20,5];
var serie2016 = [65,20,13,2];
desenhaBarra(50, 50, serie2015, cores, '2015');
desenhaBarra(150, 50, serie2016, cores, '2016');
desenhaLegenda(250, 80, cores);
</script>