Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Ejercicio: Gráfico de barras

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

<script>
        var pantalla = document.querySelector("canvas");
        var pincel = pantalla.getContext("2d");
        pincel.fillStyle= "lightgrey";
        pincel.fillRect(0,0, 400, 200);



    function dibujarRectangulo(x, y, base, altura, color) {
        var pantalla = document.querySelector("canvas");
        var pincel = pantalla.getContext("2d");
        pincel.fillStyle=color;
        pincel.fillRect(x,y, base, altura);
        pincel.strokeStyle="black";
        pincel.strokeRect(x,y, base, altura);
    }

    function escribirTexto(x , y, texto) {
        var pantalla = document.querySelector("canvas");
        var pincel = pantalla.getContext("2d");
        pincel.font="15px Georgia";
        pincel.fillStyle="black";
        pincel.fillText(texto, x, y); 

        pincel.fillStyle="blue"; 
        pincel.fillText("Chrome",300,65);

        pincel.fillStyle="green"; 
        pincel.fillText("Firefox",300,85); 

        pincel.fillStyle="yellow"; 
        pincel.fillText("Explorer",300,105); 

        pincel.fillStyle="red"; 
        pincel.fillText("Safari",300,125);

        pincel.fillStyle="grey"; 
        pincel.fillText("otros",300,145);    
    }

    var serie2009 = [6, 47, 41, 3, 3];
    var serie2019 = [81, 9, 3, 3, 4];
    var colores = ["blue","green","yellow", "red","gray"];
    var navegador = ["Google", "Firefox", "Internet Explorer/Edge", "Safari", "Otros"]; 


    function dibujarBarra(x, y, serie, colores, texto) {

        escribirTexto(x, y - 10, texto);

        var sumaAltura = 0;
        var i = 0;
        while (i < serie.length) {
            var altura = serie[i];
            dibujarRectangulo(x, y + sumaAltura, 50, altura, colores[i]);
            sumaAltura = sumaAltura + altura;
            i++;
        }
    }

    dibujarBarra(50,50, serie2009, colores, "2009");
    dibujarBarra(150, 50, serie2019, colores, "2019");
    dibujarRectangulo(250, 50, 40, 16, "blue");
    dibujarRectangulo(250, 70, 40, 16, "green");
    dibujarRectangulo(250, 90, 40, 16, "yellow");
    dibujarRectangulo(250, 110, 40, 16, "red");
    dibujarRectangulo(250, 130, 40, 16, "gray");


</script>
2 respuestas

Hola Mabel, espero que estés muy bien.

Estamos muy contentos con tu aprendizaje. Excelente solución, probé tu código y funciona muy bien, gracias por compartirlo con nosotros.

Continúa con tus estudios y cualquier duda estaremos aquí =)

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Hola Mabel, te comparto otra version del codigo de Barras,

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

<script>

    function dibujarRectangulo(x, y, base, altura, color) {
        var pantalla = document.querySelector("canvas");
        var pincel = pantalla.getContext("2d");

        pincel.fillStyle=color;
        pincel.fillRect(x,y, base, altura);
        pincel.strokeStyle="black";
        pincel.strokeRect(x,y, base, altura);
    }

    function escribirTexto(x , y, texto) {
        var pantalla = document.querySelector("canvas");
        var pincel = pantalla.getContext("2d");

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


    var serie2009 = [6, 47, 41, 3, 3];
    var serie2019 = [81, 9, 3, 3, 4];

    var colores = ["blue","green","yellow", "red","gray"];
    var productos = ["Chrome", "Firefox", "IE/Edge", "Safari", "Otros"];

    var xInicial1 =  100;
    var xInicial2 =  400;
    var yInicial1 = 190;
    var yInicial2 = 190;
    var base = 100;


    dibujarRectangulo(10,10,580,380,"white");

    for(var i = 0; i < 5; i++) {

        dibujarRectangulo(xInicial1, yInicial1, base, serie2009[i]*2, colores[i]);
        dibujarRectangulo(xInicial2, yInicial2, base, serie2019[i]*2, colores[i]);

        yInicial1 += serie2009[i]*2;
        yInicial2 += serie2019[i]*2; 

    }

    // Leyendas

    for(var i = 0; i < 5; i++) {

       dibujarRectangulo(30 + (100*i), 40, 20, 20, colores[i]);
       escribirTexto(30 + (100*i),80, productos[i]);

    }   


    // Titulos Barras
    escribirTexto(135,170, "2009");
    escribirTexto(435,170, "2019");

</script>