Plot.plot({
inset: 10,
x: { axis: null },
y: { axis: null },
r: { range: [1, 3.5] },
marks: [
Plot.link(data, {x1: "x1", y1: "y1", x2: "x2", y2: "y2", strokeWidth: 0.25}),
Plot.dot(data, { z: "y2", x: "x1", y: "y1", fill: "color", r: d => 1 - d.y1}),
Plot.dot(data, { z: "y1", x: "x2", y: "y2", fill: "color", r: d => 1 - d.y2 + h}),
],
width: 600,
height: 600
})