1
resposta

Resolução grafico de barras

Eu sei que eu escrivi muito mas foi a forma que eu encontrei.

<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, cor) {
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');

        pincel.font='20px Georgia';
        pincel.fillStyle= cor;
        pincel.fillText(texto, x, y);    
    }

    var serie2015 = [50, 25, 20, 5];
    var serie2016 = [65, 20, 13, 2];
    var cores = ['blue', 'green', 'yellow', 'red'];

    function desenhaBarra(x, y, serie, cores, texto) {

        desenhaTexto(52, 95, '2015', 'black');
        desenhaRetangulo(x, y, 50, 50, 'blue');
        desenhaRetangulo(x, y+50, 50, 25, 'green');
        desenhaRetangulo(x, y+50+25, 50, 20, 'yellow');
        desenhaRetangulo(x, y+50+25+20, 50, 5, 'red');

    }

    function desenhaBarras(x, y, serie, cores, texto) {

        desenhaTexto(352, 95, '2016', 'black');
        desenhaRetangulo(x, y, 50, 65, 'blue');
        desenhaRetangulo(x, y+65, 50, 20, 'green');
        desenhaRetangulo(x, y+65+20, 50, 13, 'yellow');
        desenhaRetangulo(x, y+65+20+13, 50, 2, 'red');

    }

    desenhaTexto(15, 20, 'Os navegadores mais utilizados em 2015 e 2016', 'black');

    desenhaBarra(50, 100, serie2015, cores, '2015');
    desenhaBarras(350, 100, serie2016, cores, '2016');

    desenhaTexto(25, 248, 'serie2015', 'black');
    desenhaRetangulo(0, 250, 150, 400, 'lightgray');
    desenhaTexto(15, 280, '-Chrome 50%', 'blue');
    desenhaTexto(15, 310, '-Firefox 25%', 'green');
    desenhaTexto(15, 340, '-Safari 20%', 'yellow');
    desenhaTexto(15, 370, '-outros 5%', 'red');

    desenhaTexto(330, 248, 'serie2016', 'black');
    desenhaRetangulo(300, 250, 150, 400, 'lightgray');
    desenhaTexto(315, 280, '-Chrome 65%', 'blue');
    desenhaTexto(315, 310, '-Firefox 20%', 'green');
    desenhaTexto(315, 340, '-Safari 13%', 'yellow');
    desenhaTexto(315, 370, '-outros 2%', 'red');
</script>
1 resposta

Olá, Antonio! Tudo bem por aí?

Excelente, sua solução está correta, e seu código ficou muito bem estruturado, parabéns!

Caso tenha alguma dúvida não deixe de compartilhar.

Bons estudos e até mais!