1
resposta

grafico_barras.html

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

<script>
    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){

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

        var largura = 50;

        desenhaTexto(x + 10, y / 2, texto);    

        for (i = 0; i < serie.length; i++){
            //
            pincel.fillStyle=cores[i];
            //           X, Y, Largura, Altura
            pincel.fillRect(x, y, largura, serie[i]);

            pincel.strokeStyle='black';
            pincel.strokeRect(x, y, largura, serie[i]);

            desenhaTexto(x + largura, y + (serie[i] / 2) , serie[i]);

            // Acumula os valores para gerar a próxima posição da barra
            y = y + serie[i];

        }
    }

    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');

</script>
1 resposta

Boa, Jonatas!

Bacana!

Só uma observação.... Rodei seu código e vi que os valores estão "coladas" junto a barra.

Faça uns testes para mexer nessa parte ;-)

O restante ficou perfeito!

Um abraço e bons estudos!