Comparto mi código para este ejercicio.
<!-- Programa: grafico-de-barras.html -->
<meta charset = "utf-8">
<canvas width = "600" height = "400"></canvas>
<script type = "text/javascript">
// Definimos la función dibujarRectangulo
function dibujarRectangulo(x, y, base, altura, color) {
var pantalla = document.querySelector("canvas");
var pincel = pantalla.getContext("2d");
pincel.fillStyle = color;
pincel.fillRect(x, y, base, altura);
// Definimos el color del borde
pincel.strokeStyle = "#333333";
pincel.strokeRect(x, y, base, altura);
}
function escribirTexto(x, y, texto) {
var pantalla = document.querySelector("canvas");
var pincel = pantalla.getContext("2d");
// Definimos la fuente, tamaño y color del texto
pincel.font = "16px Arial";
pincel.fillStyle = "black";
// Ubicamos el texto centrándolo sobre las barras
pincel.fillText(texto, x + 8, y + 5);
}
function dibujarBarra(x, y, serie, colores, texto) {
escribirTexto(x, y - 10, texto);
// Definimos la variable sumaAltura para determinar la posición vertical de cada rectangulo
var sumaAltura = 0; // Variable auxiliar
for (var i = 0; i < serie.length; i++) {
var altura = serie[i];
dibujarRectangulo(x, y + sumaAltura, 50, altura, colores[i]);
sumaAltura = sumaAltura + altura;
}
}
// Se definen variables array para los colores y series de años
var colores = ["blue", "green", "yellow", "red", "gray"];
var serie2009 = [6, 47, 41, 3, 3];
var serie2019 = [81, 9, 3, 3, 4];
// Dibujamos cada barra
dibujarBarra(50, 50, serie2009, colores, "2009");
dibujarBarra(150, 50, serie2019, colores, "2019");
</script>