chart = vl
.data(data)
.encode(
vl
.x()
.fieldQ("x")
.axis({ title: "Votes counted", format: "%" }),
vl
.y()
.fieldQ("y")
.axis({
title: `Share of votes for ${republican.last_name} in ${state_id}`,
format: "%"
})
)
.layer(
vl
.markArea({ clip: true })
.data(endzoneR)
.encode(
vl.x().fieldQ("x"),
vl
.y()
.fieldQ("y")
.scale({ domain }),
vl.y2().fieldQ("y2"),
vl.opacity().value(.5),
vl.color().value("#dd2c35")
),
vl
.markArea({ clip: true })
.data(endzoneD)
.encode(
vl.x().fieldQ("x"),
vl
.y()
.fieldQ("y")
.scale({ domain }),
vl.y2().fieldQ("y2"),
vl.opacity().value(.5),
vl.color().value("#0080c9")
),
vl.markLine().encode(vl.color().value("black"))
)
.render()