Plot.plot({
width,
facet: { data, y: "sport", x: "sex", marginLeft: 140 },
x: { domain: [16, 49], grid: true, ticks: 10 },
y: { axis: null, domain: [0, 1.2] },
fy: {
domain: d3.groupSort(
data,
(v) => d3.median(v, (d) => d.bmi),
(d) => d.sport
)
},
marks: [
Plot.frame(),
Plot.rectY(
data,
Plot.normalizeY(
Plot.binX(
{ y: "count" },
{
x: "bmi",
filter: "bmi",
fill: "sport",
basis: "max"
}
)
)
)
]
})