Nesse exercício eu senti uma real dificuldade de entender a lógica no começo, mas pensei comigo "eu não preciso me apressar, eu preciso aprender". Fiquei matutando e tentando diferentes formas de implementar o código e finalmente consegui chegar numa solução.
Sei que ele pode ficar muito mais simplificado, mas a sensação de ter conseguido resolvê-lo só queimando a massa cinzenta é inexplicável!
<canvas width="600" height="500"></canvas>
<script>
    var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");
    function desenhaBarra(x, y, serie, cores, texto){
        var y = y + y;
        var serie = serie;
        pincel.fillStyle = cores[0];
        pincel.fillRect(x, y, 50, serie[0]);
        pincel.strokeStyle = "black";
        pincel.strokeRect(x, y, 50, serie[0]);
        var serie = serie;
        pincel.fillStyle = cores[1];
        pincel.fillRect(x, y + serie[0], 50, serie[1]);
        pincel.strokeStyle = "black";
        pincel.strokeRect(x, y + serie[0], 50, serie[1]);
        var serie = serie;
        pincel.fillStyle = cores[2];
        pincel.fillRect(x, y + serie[0] + serie[1], 50, serie[2]);
        pincel.strokeStyle = "black";
        pincel.strokeRect(x, y + serie[0] + serie[1], 50, serie[2]);
        var serie = serie;
        pincel.fillStyle = cores[3];
        pincel.fillRect(x, y + serie[0] + serie[1] + serie[2], 50, serie[3]);
        pincel.strokeStyle = "black";
        pincel.strokeRect(x, y + serie[0] + serie[1] + serie[2], 50, serie[3]);
        var desenhaTexto = texto 
        pincel.Font = "14px Georgia";
        pincel.fillStyle = "black";
        pincel.fillText(desenhaTexto, x, y - 10);
    }
    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>
 
            