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

[Proyecto] Grafico de barras - Hacia arriba... ↑ y cambiando la escala

Este es mi código de gráfico de barras. Pero de poniendo los primeros datos en la parte baja de la grafica y los subsecuentes se van apilando hacia arriba. Así mismo se puede cambiar la escala de la grafica para hacerla mas grande y poder visualizarla mejor o más pequeña si se quiere. Tambien se puede seleccionar entra serie u otra con solo cambiar la variable correspondiente. Estoy a plicando solo visto hasta esta parte del curso. Cualquier duda o sugerencia con gusto la revisamos. Saludos.

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

<script>

    //---> FUNCIONES
    function graficaInd(x, y, valor, color){
        var canvas = document.querySelector('canvas');
        var grafica = canvas.getContext('2d');

        grafica.fillStyle = color;
        grafica.fillRect(x, y, 100, valor);
        grafica.strokeStyle = 'black';
        grafica.strokeRect(x, y, 100, valor);
    }

    function texto(navegador, x, y, valor, color){
        var canvas = document.querySelector('canvas');
        var text = canvas.getContext('2d');

        text.font = '12px Arial';
        text.fillStyle = color;
        text.fillText(navegador, x, y, valor, color);
    }

    //---> PROGRAMA
    var serie2009 = [6, 47, 41, 3, 3, '2009'];
    var serie2019 = [81, 9, 3, 3, 4, '2019'];
    var navegador = ['Chrome', 'Firefox', 'IE/Edge', 'Safari', 'Otros'];
    var colores = ["blue","green","yellow", "red","gray"];
    var serie = [];

    //Serie a usar
    var serie = serie2009;   //<------- Cambiar la variable de la serie
    var escala = 3;         //<-------- Cambiar la escala

    //Capturar los datos
    var cont = 0;
    var newX = 0;
    var newY = 0;
    var sumPercent = 0;
    while(cont <= serie.length){
        let xIni = 300;
        let yIni = 400;

        if(cont == 0){
            graficaInd(xIni, yIni, -serie[cont] * escala, colores[cont]);    
            texto(navegador[cont] + ": " + serie[cont] + "%", xIni + 150, yIni, 30 * escala, colores[cont]);
            sumPercent = sumPercent + serie[cont] * escala; 
        }

        if(cont > 0 && cont < serie.length - 1 ){
            graficaInd(xIni, yIni - sumPercent, -serie[cont] * escala, colores[cont]);    
            texto(navegador[cont] + ": " + serie[cont] + "%", xIni + 150, yIni - (20 * cont), 30 * escala, colores[cont]);
            sumPercent = sumPercent + serie[cont] * escala;
        }

        if(cont == serie.length - 1){
            texto("Serie: " + serie[cont], xIni + 150, yIni - (20 * cont + 1), 30 * escala, colores[cont]);
        }

        cont++;
    };

</script>
1 respuesta

¡Hola, Javier! Deseo que esté bien.

Muchas gracias por compartir tu proyecto con nosotros. Estamos muy contentos de poder acompañarte en tu camino de aprendizaje.

Tu proyecto está increíble. ¡Felicitaciones!

En lo esencial, en el foro estamos priorizando las dudas y errores.

Para compartir tus proyectos con nosotros y otros estudiantes, te recomiendo que lo haga en nuetro servidor de Discord. Allí tenemos un canal exclusivo para eso (⛓┇comparte-tu-codigo-logica).

Además, continua con tus estudios y hasta la proxima.

¡Vamos juntos!

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