vl.layer(
vl.markLine({ interpolate: 'step-after', point: true })
.encode(
vl.x().fieldT('date').title('Date'),
vl.y().fieldQ('cumulativeIncidents').axis({ title: "Cumulative Incidents"}),
vl.color().field('city').title('City')
)
.data(chartData),
vl.layer(
vl.markRule()
.encode(
vl.x().fieldT('date'),
vl.color().value('#666')
),
vl.markText({ align: 'left', dx: 5, fontSize: 12 })
.encode(
vl.x().fieldT('date'),
vl.y().value(20),
vl.text().field('note'),
vl.color().value('#222')
)
).data([{ date: new Date(2020, 6, 15), note: "DHS agents arrive in Portland" }])
)
.width(600)
.render({renderer: 'svg'})