Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] me complique la vida por probar otras cosas jajaja, tarde como 3 horas :C

<!DOCTYPE html>

<html>

<head>
    <title>Grafico de barras</title>
    <script>
        //variables
        let pincel, pizarron;
        let g2009 = [6, 47, 41, 3, 3];
        let g2019 = [81, 9, 3, 3, 4];
        let titulos = ["2009", "2019"];
        let totalSeries = [g2009, g2019];
        let coloresBarras = ["blue", "green", "yellow", "red", "purple"];
        //funciones

        //Funcion que se carga con la pagina, y es la que ejecuta todo
        window.onload = function () {
            pizarron = document.getElementById("pizarron");
            pincel = pizarron.getContext("2d");
            let ancho = pizarron.width;
            let alto = pizarron.height;
            let botoncito = document.getElementById("botoncito");

            //carga el marco
            automarco();

            //manejador del botoncito
            botoncito.onclick = function () {
                imprimebarras(totalSeries);
                poneTitulos(titulos);
            }

        }
        //Funcion que limpia e canvas y redibuja el marco
        function limpiarCanvas() {
            let ancho = pizarron.width;
            let alto = pizarron.height;
            pincel.clearRect(0, 0, ancho, alto);
            automarco();
        }

        //funcion que crea el marco alrededor del canvas, con un grosor determinado
        function automarco() {
            let ancho = pizarron.width;
            let alto = pizarron.height;
            let grosorLinea = 2;
            pincel.fillStyle = "lightgrey";
            pincel.fillRect(0, 0, ancho, alto);
            pincel.fillStyle = "Black";
            pincel.fillRect(0, 0, ancho, grosorLinea);//arriba
            pincel.fillRect(0, 0, grosorLinea, alto);//izquierda
            pincel.fillRect((ancho - grosorLinea), 0, grosorLinea, alto);//derecha
            pincel.fillRect(0, (alto - grosorLinea), ancho, grosorLinea);//abajo

        }

        function poneTitulos(titulos){
            let ancho = pizarron.width;
            let alto = pizarron.height;
            let textoX, textoY;
            textoX = 10+7;
            textoY = alto - 210;
            for (let i = 0; i < titulos.length; i++) {

                pincel.font = "15px Georgia";
                pincel.fillStyle = "black";
                pincel.fillText(titulos[i], textoX, textoY);
                textoX = textoX +60;
            }
        }
        //funcion que crea el grafico para una serie y con los colores dados como parametros ambos
        //ambos arreglos tienen que ser iguales
        function creaBarra(serie, colores, X) {
            let ancho = pizarron.width;
            let alto = pizarron.height;
            let inicioX = X;
            let anchoBarra = 50;
            let inicioBarra = alto - 200;
            //Pone la etiqueta
            //recorre la serie
            for (let idNavegador = 0; idNavegador < serie.length; idNavegador++) {
                //se va a formar la grafica desde abajo, con y hasta el maximo alto y con x dando un espacio de 10 pixeles
                pincel.fillStyle = colores[idNavegador];
                pincel.fillRect(inicioX, inicioBarra, anchoBarra, serie[idNavegador] * 2);
                inicioBarra = inicioBarra + (serie[idNavegador] * 2);
            }
        }

        function imprimebarras(totalSeries) {
            let separador = 10;
            for (let i = 0; i < totalSeries.length; i++) {
                creaBarra(totalSeries[i], coloresBarras, separador)
                separador = separador + 60;
            }
        }

    </script>
</head>

<body>
    <header>
        <h2>Final de clase, Grafico de barras - ^__^</h2>
    </header>
    <button id="botoncito">Puchale</button>
    <br>
    <br>
    <canvas id="pizarron" width="800" height="400"></canvas>
    <br>
</body>

</html>

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola, felicidades por tu dedicación en el curso. Gracias por tu mensaje. Sin embargo, el foro no es el lugar más adecuado para responder a tus ejercicios. El foro es un espacio para compartir dudas, preguntas y discusiones sobre el material del curso. Te recomiendo que compartas la respuesta de tus ejercicios en nuestro servidor de Discord, que también es un buen lugar para compartir experiencias e interactuar con otros alumnos e instructores. ¡Deseamos que puedas cumplir con todos tus objetivos y tener éxito en tus estudios, saludos!

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