{
const pastLayer = vl.markCircle({ opacity: 1, color: "#eee" }).encode(
vl.x().fieldQ("Change in Enrollment").axis({ tickCount: 5 }),
vl.y().fieldQ("Initial School Allocation").axis({ tickCount: 8 }),
vl.size().fieldQ("Enrollment FY24"),
vl.tooltip().fieldN("School Name")
);
const barLayer = vl.markBar({ opacity: 1, color: "#eee", width: 3 }).encode(
vl.y().fieldQ("Initial School Allocation"),
vl.y2().fieldQ("Submitted Budget 2023"),
vl.x().fieldQ("Change in Enrollment"),
vl.tooltip().fieldN("School Name")
);
const circleLayer = vl
.markCircle({ opacity: 0.9 })
.encode(
vl.x().fieldQ("Change in Enrollment").axis({ tickCount: 5 }),
vl.y().fieldQ("Submitted Budget 2023").axis({ tickCount: 8 }),
vl.size().fieldQ("Enrollment FY24"),
vl.tooltip().fieldN("School Name"),
vl.color().fieldN("Grade Level").scale({ scheme: "category10" })
);
return vl
.layer(pastLayer, barLayer, circleLayer)
.data(df)
.height(600)
.width(600)
.render({ renderer: "svg" });
}