{
const Brush = vl.selectInterval()
.encodings("x");
const hover = vl.selectSingle()
.on("mouseover")
.encodings("x")
.nearest(true);
const Line = vl.markLine()
.select(Brush)
.title("Как менялась средняя цена в Москве")
.width(1000)
.height(300)
.encode(
vl.x().fieldT("date"),
vl.y().fieldQ("price").aggregate("mean"));
const Bars = vl.markBar({tooltip: true})
.transform(
vl.filter(Brush),
vl.aggregate(vl.mean("price").as("Mean")).groupby("district"),
vl.window(vl.rank().as('rank')).sort(vl.field("Mean").order('descending')),
vl.filter('datum.rank < 10'))
.height(400)
.width(600)
.encode(
vl.x().fieldQ("Mean"),
vl.y().fieldN('district').sort("-x").title(false)
); return vl.vconcat( vl.layer(Line), vl.layer(Bars))
.data(data_clean)
.render()
}