vl.markBar()
.data(data)
.params(yearSelect)
.transform(vl.filter(vl.expr("datum.year_received == year")))
.encode(
vl.x(vl.fieldN("rank_now")).title("Officer Rank"),
vl.y(vl.aggregate("count")).title("Number of Complaints"),
vl.color(vl.fieldN("rank_now")).legend({ title: "Rank" }),
vl.tooltip([
vl.fieldN("rank_now").title("Rank"),
vl.aggregate("count").title("Complaints")
])
)
.width(400)
.height(300)
.title("Complaints by Officer Rank (Filtered by Year)")
.render()