{
const hover = vl.selectSingle()
.encodings('x')
.fields('date')
.on('mouseover')
.nearest(true)
.empty('none');
const graph = vl.markLine()
.encode(
vl.x().fieldT("date").title(null),
vl.y()
.sum("percent")
.stack(true)
.axis({format: "%"})
.scale({domain: [0, 1]})
.title("Percentage van de gemeenten"),
vl.order().fieldQ("weeks"),
vl.opacity().value(0.9),
vl.color()
.fieldN("weeks")
.scale({scheme: "greens", reverse: true, domain: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})
.legend(null)
)
.width(800)
.height(500);
return vl.data(data.filter(d => d.weeks === 0)).layer(
graph,
vl.markRule({color: '#aaa'})
.transform(vl.filter(hover))
.encode(vl.x().fieldT("date")),
graph.markCircle()
.select(hover)
.encode(
vl.stroke().value("white"),
vl.strokeWidth().value(1),
vl.opacity().if(hover, vl.value(1)).value(0)
),
graph.transform(vl.filter(hover))
.markText({align: 'left', dx: 5, dy: -5}, {fill: "black"})
.encode(
vl.text().sum("percent").format(".1%")
),
)
.title("Percentage gemeenten met minstens 1 positieve covid test in de laatste 7 dagen")
.padding({right: 30, top: 10, bottom: 10})
.render();
}