1
resposta

Solução: Gráficos de Barras

Segue abaixo a solução do problema:


<html lang="pt-br">
    <head>
        <meta charset="utf-8">
        <style>
            *{
                margin:  0;
                padding: 0;
                box-sizing: border-box ;
            }

            body {
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                height: 100vh;
            }

            .container {
                display: flex;
                flex-direction: column;
                background-color: lightgrey;
                display: flex;
                align-items: center;
                color: white;
                justify-content: center;
            }


        </style>
    </head>
    <body>
        <header>
            <h1>Gráficos</h1>
        </header>
        <div class="container">
            <canvas width="600" height="400"></canvas>
        </div>
    </body>
<script>
    function desenhaRetangulo(x, y, largura, altura, cor) {
        tela = document.querySelector('canvas');
        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; //variável auxiliar

        for(var i=0; i<serie.length; i++){
            var altura = serie[i];
            desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i]); // 50 -> largura
            somaAltura = somaAltura + altura;
        }
    }

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

    desenhaBarra(50, 50, serie2015, cores, '2015');
    desenhaBarra(150, 50, serie2016, cores, '2016');

</script>

</html>
1 resposta

Olá! Tudo bem por aí?

Sua solução ficou muito boa, parabéns!

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

Bons estudos e até mais!