Plot.plot({
aspectRatio: 1,
marks: [
Plot.geo(
d3.cross(d3.range(2, 16), d3.range(2, 11)).map(([i, j]) => {
const cx = i * 1.5;
const cy = (j - (i % 2) / 2) * Math.sqrt(3);
const ring = [];
for (let i = 0; i <= 6; ++i) {
const a = (i / 3) * Math.PI;
ring.push([cx + Math.cos(a), cy + Math.sin(a)]);
}
return {type: "Polygon", coordinates: [ring]};
})
)
]
})