{
const brush = vl.selectInterval()
.encodings('x');
const years = vl.markBar()
.select(brush)
.encode(
vl.x().fieldQ('log_price'),
vl.y().count().title(null),
vl.color().fieldN('room_type').scale({scheme: "set2"})
)
.height(100);
const ratings = vl.markCircle()
.encode(
vl.x().fieldQ('longitude').scale({zero: false}),
vl.y().fieldQ('latitude').scale({zero: false}),
vl.color().fieldN('room_type').scale({scheme: "set2"}),
vl.opacity().if(brush, vl.value(0.8)).value(0.2),
vl.size().if(brush, vl.value(10)).value(0.5)
)
.height(400);
return vl.data(airbnb)
.vconcat(years, ratings)
.render();
}