Plot.plot({
width: Math.max(width, 600),
marginBottom: 10,
projection: {
type: "azimuthal-equidistant",
rotate: [0, -90],
domain: d3.geoCircle().center([0, 90]).radius(1.22)()
},
color: { legend: true },
facet: {
data: points,
x: "fx",
y: "fy",
axis: null
},
marks: [
Plot.text(points, Plot.selectFirst({text: "name", frameAnchor: "bottom", fontWeight: "400", fontSize: 14})),
Plot.geo([1.0], {
geometry: (r) => d3.geoCircle().center([0, 90]).radius(r)(),
stroke: "black",
fill: "black",
strokeOpacity: 0.2,
fillOpacity: 0.02,
strokeWidth: 0.5
}),
Plot.text(longitude.domain(), {
fx: 0, fy: 0,
x: longitude,
y: 90 - 1.07,
text: Plot.identity,
lineWidth: 5,
fontSize: 12
}),
Plot.text(longitude.domain(), {
fx: 0, fy: 0, facet: "exclude",
x: longitude,
y: 90 - 1.09,
lineWidth: 5
}),
Plot.area(points, {
x1: ({ key }) => longitude(key),
y1: ({ value }) => 90 - value,
x2: 0,
y2: 90,
fill: "#4269D0",
fillOpacity: 0.25,
stroke: "#4269D0",
curve: "cardinal-closed"
}),
]
})