values = d3.cross(d3.range(10), d3.range(10)).map(([i, j]) => i * j);
Plot.plot({
aspectRatio: true,
inset: 40,
x: { ticks: 10 },
marks: [
Plot.dot(values, {
x: (d, i) => i % 10 + 0.5,
y: (d, i) => Math.floor(i / 10) + 0.5,
fill: (d) => d
}),
Plot.geo([])
]
})
Note: in that case aspectRatio is not completely ignored, but defaults to the golden ratio.