Plot.plot({
color: colorScale,
height: 300,
marks: [
Plot.line(
data
.slice(0, 100000)
.filter((d) => d.disease === select_disease_line_chart)
.sort((a, b) => {
const val_a = a.state === highlight_state_line_chart ? 1 : 0;
const val_b = b.state === highlight_state_line_chart ? 1 : 0;
return val_a - val_b;
}),
Plot.windowY({
x: "date",
y: "incidence",
fill: "state",
fillOpacity: 0,
stroke: (d) =>
d.state === highlight_state_line_chart ? "highlight" : "bkg",
k: 15,
reduce: "mean",
opacity: (d) => (d.state === highlight_state_line_chart ? 1 : 0.25),
strokeWidth: (d) => (d.state === highlight_state_line_chart ? 3 : 0.5)
})
),
Plot.ruleY([0])
]
})