La parte de escribir los nombres de los navegadores no es muy practica pasar una x una pero me parecio mas desproposito hacer una funcion y crear mas variables que escribir cada nombre x separado. No se que opinan.
<meta charset="utf-8">
<canvas width="600" height="400"></canvas>
<script type="text/javascript">
var pantalla = document.querySelector("canvas");
var pincel = pantalla.getContext("2d");
var serie2009 = [6, 47, 41, 3, 3];
var serie2019 = [81, 9, 3, 3, 4];
var series = [serie2009, serie2019]
var colores = ["blue", "green", "yellow", "red", "gray"];
var x = 200;
var y = 80;
pincel.fillStyle = "lightgray";
pincel.fillRect(0,0,600,400);
function dibujarRectangulo(x, y, base, altura, color) {
pincel.fillStyle = color;
pincel.fillRect(x, y, base, altura, color);
pincel.strokeStyle = "black";
pincel.strokeRect(x, y, base, altura);
}
function escribirTexto(x, y, texto, color) {
pincel.font = "20px Georgia";
pincel.fillStyle = color;
pincel.fillText(texto, x, y);
}
escribirTexto(210, 60, "2009", "black");
escribirTexto(310, 60, "2019", "black");
escribirTexto(30, 220, "Chrome","blue");
escribirTexto(150, 220, "Firefox","green");
escribirTexto(270, 220, "IE / Edge","yellow");
escribirTexto(400, 220, "Safari","red");
escribirTexto(510, 220, "Otros","gray");
for(var i = 0; i < series.length; i++) {
var j = 0;
while(j < series[i].length) {
dibujarRectangulo(x, y,70, series[i][j], colores[j]);
y = y + series[i][j];
j = j + 1;
}
x = 300;
y = 80;
}
</script>