1
resposta

Gráfico de barras com legendas e percentuais

Bom exercício que faz pensar e usar bastante conceitos. Implementei a legenda com as cores e os percentuais abaixo.

<meta charset="UTF-8">
<canvas width="600" height="400"></canvas>

<script>

    var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");

    var serie2015 = [50,25,20,5];
    var serie2016 = [65,20,13,2];
    var cores = ["blue","green","yellow","red"];
    var navegadores = ["Chrome", "Firefox", "Safari", "Outros"];

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


            for(var a = 0; a < serie.length; a++){

                if(a == 0) {
                    escreveTexto(x, y, texto);
                }

                pincel.fillStyle = cores[a];
                pincel.fillRect(x,y,50,serie[a]);
                pincel.strokeStyle = "black";
                pincel.strokeRect(x,y,50,serie[a]);
                y = y + serie[a];

            }

        }

        function escreveTexto(x, y, texto){

            pincel.font = "15px Arial";
            pincel.fillStyle = "black";
            pincel.fillText(texto, x, y - 10);

        }

        function escreveLegenda(x, y, texto){

            pincel.font = "15px Arial";
            pincel.fillStyle = "black";
            pincel.fillText(texto, x, y);

        }

        function escrevePercentuais(serie, texto){

            document.write("<br>Em " + texto + ": ");
            for(var a = 0;a <= 3;a++){
                document.write(" " + serie[a] +"% " + navegadores[a] + " /// ");
            }

            document.write("<br>");

        }

        function desenhaLegenda(x, y, cores, navegadores){

            for(var a = 0; a < cores.length; a++){

            pincel.fillStyle = cores[a];
            pincel.fillRect(x, y, 20, 20);
            pincel.fillStroke = "black";
            pincel.strokeRect(x, y, 20, 20);
            escreveLegenda(x + 25, y + 15, navegadores[a]);
            x = x + 100;

            }


        }

        desenhaGrafico(50, 50, serie2015, cores, "2015");
        desenhaGrafico(250, 50, serie2016, cores, "2016");
        escrevePercentuais(serie2015, "2015");
        escrevePercentuais(serie2016, "2016");
        desenhaLegenda(50, 200, cores, navegadores);


</script>
1 resposta

Olá Vinicius, espero que esteja bem.

Obrigada por compartilhar seu código conosco.

Você pode compartilhar seus exercícios no Linkedin e/ou subir seu projeto no Github, pois estas ferramentas vão te permitir um maior alcance =)

Dúvidas sobre o conteúdo dos cursos, estaremos à disposição!

Se este post te ajudou, por favor, marca como solucionado ✓. Bons estudos!