vl.markBar()
.data(
Array.from(
d3.rollup(
coffee_low_man.filter(d => {
if (!d.transaction_date) return false;
const [m] = d.transaction_date.split("/");
const monthNum = +m;
return monthNum >= 1 && monthNum <= 6;
}),
v => v.length,
d => +d.transaction_date.split("/")[0]
),
([month, count]) => ({
month,
label: monthNames[month - 1],
count
})
)
.sort((a, b) => d3.ascending(a.month, b.month))
)
.encode(
vl.x().fieldN("label")
.sort(monthNames)
.axis({ title: "" }),
vl.y().fieldQ("count").axis({ title: "Transactions" }),
vl.color().fieldQ("count").scale({ scheme: "oranges" }),
vl.tooltip(["label", "count"])
)
.width(500)
.height(240)
.title("Amount of Monthly Transactions (Jan–Jun 2023)")
.render();