Plot.plot({
marks: [
Plot.pie(penguins, {
transform: (data, facets) => ({
facets,
data: d3.rollup(
data,
(v) => d3.median(v, (d) => d.body_mass),
(d) => d.species
)
}),
value: (d) => d[1],
innerRadius: 96,
outerRadius: 99,
sortValues: (a, b) => b[1] - a[1],
startAngle: -2.5,
endAngle: Math.PI * 2 - 2.5,
padAngle: 0.3,
fill: ({ data }) => data["0"],
x: constant(d3.median(penguins, (d) => d.bill_length)),
y: constant(d3.median(penguins, (d) => d.bill_depth))
}),
Plot.dot(penguins, {
x: "bill_length",
y: "bill_depth",
fill: "species",
stroke: "white"
})
]
})