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>