viewof crimeChart = {
const crimeBar = vl.markBar()
.data(vanCrime2)
.transform(vl.filter({'and':
[brush, {'field': 'NEIGHBOURHOOD', 'oneOf': mapSelection}]}))
.select(click)
.encode(
vl.x().count(),
vl.y().fieldN('Offense'),
vl.color().value('lightgray').if(click, vl.color().fieldN('Offense Category'))
)
.width(200)
.height(200)
const crimeLine = vl.markLine()
.data(vanCrime2)
.transform(vl.filter({'and':
[click, {'field': 'NEIGHBOURHOOD', 'oneOf': mapSelection}]}))
.encode(
vl.x().fieldT('Date').timeUnit('utcdatemonth'),
vl.y().count(),
vl.color().fieldN('Offense Category')
)
.params(brush)
.width(400)
.height(200)
return vl.hconcat(crimeBar, crimeLine).render()
}