function grid(size,fontsize,getNumber,getColor) {
const start = -Math.floor(size/2);
const end = start+size;
const cellxy = (x,y) => translate([x,y,0],cell(''+(getNumber(x,y)??''),'#ffffff',getColor(x,y),fontsize))
const cells = d3.range(start,end).flatMap(x => d3.range(start,end).map(y => cellxy(x,y)));
const xAxis = d3.range(start,end).map(x => translate([x,start-1,0],cell(''+x,'#aaaaaa','#ffffff',0.8*fontsize)));
const yAxis = d3.range(start,end).map(y => translate([start-1,y,0],cell(''+y,'#aaaaaa','#ffffff',0.8*fontsize)));
return g(...cells,...xAxis,...yAxis);
}