Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

Gráfico de barras com legenda simples

Exercício deveras complicado pra quem ainda tá começando, acredito que deveria ter sido um exercício feito em vídeo pelo instrutor, mesmo que parcialmente. De qualquer forma, segue o exercício finalizado com uma legenda simples com o nome dos browsers.

<canvas width="600" height="400"></canvas>

<script>
    var ano2015 = [50, 25, 20, 5];
    var ano2016 = [65, 20, 13, 2];
    var cores = ['blue', 'green', 'yellow', 'red'];
    var browsers = ['Chrome', 'Firefox', 'Safari', 'Outros'];

    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 escreveTexto (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, ano, cores, texto) {
        escreveTexto(x, y - 10, texto);
        var somaAltura = 0; //variável auxiliar
        for (var i = 0; i < ano.length; i++) {
            var altura = ano[i];
            desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i]);
            somaAltura += altura
        }
    }

    escreveTexto(275, 40, 'Legenda:');
    desenhaBarra(50, 50, ano2015, cores, '2015');
    desenhaBarra(150, 50, ano2016, cores, '2016');

    function escreveLegenda(x, y, browsers){
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');
        for (var i = 0; i < cores.length; i++){
            desenhaRetangulo(x-25, y-15, 20, 20, cores[i])
            escreveTexto(x, y, browsers[i]);
            y += 20;
        }

    }

    escreveLegenda(300, 70, browsers);

</script>

Gráfico de barras com legenda

2 respostas
solução!

Boa noite ANGELA CALDAS,

Gostei muito do código que você escreveu, acredito com que o resultado condiz com o previsto para o projeto.

Qualquer dúvida na implementação do seu código pode compartilhar conosco para que possamos lhe ajudar.

Parabéns e até logo, abraço.

Obrigada, Jean <3