4
respostas

Meu gráfico ficou do menor pro maior

normalmente em um gráfico, a parte maior vem no topo, mas nesse caso ficou do menor pro maior, inverteu... o que pode ser?

    function desenhaRetangulo(x, y, largura, altura, cor) {
            var tela = document.querySelector('canvas');
            var 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]; // recupero o valor da série pelo índice, que representa o valor da altura do rect
                desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i]);
                somaAltura ++;
            }
        }

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

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

boa tarde douglas , o que ocorreu foi um erro de soma nesta parte:

        for (var i = 0; i < serie.length; i++) {
            var altura = serie[i]; // recupero o valor da série pelo índice, que representa o valor da altura do rect
            desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i]);
            somaAltura ++;
        }

para ficar no modo certo nao adiciona +1 e sim a altura de novo

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

espero ter ajudado

Oi Dhiego, boa tarde Muito obrigado, farei o teste e depois comento Abraço!

Agora deu certo sim! Valeu

disponha :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software