timeline = {
const area = vl
.markArea({ point: true, opacity: 0.8 })
.encode(
vl.x().fieldT("date").timeUnit("yearmonth"),
vl.y().count("charges"),
vl.color().fieldN("Conference")
)
.width(width - 120)
.height(400);
const range = vl.selectInterval().encodings("x");
const filter = area
.params(range)
.encode(vl.opacity().if(range, vl.value(0.9)).value(0.2))
.height(100);
return vl
.vconcat(area.transform(vl.filter(range)), filter)
.data(ieeevis_publications)
.title("IEEEVIS Publications by year and conference")
.render();
}