function createWeekdayChart(filteredData) {
const weekdayData = d3.rollup(
filteredData,
v => v.length,
d => new Date(d.date).getUTCDay()
);
const weekdayDataCount = Array.from(weekdayData, ([weekday, count]) => ({ weekday, count }));
const weekdayLabels = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
weekdayDataCount.forEach(d => d.weekdayName = weekdayLabels[d.weekday]);
return vl.markBar()
.data(weekdayDataCount)
.encode(
vl.x().fieldN("weekdayName").sort(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"])
.axis({ title: "Weekday" }),
vl.y().fieldQ("count").axis({ title: "Observations" }),
vl.tooltip([{ field: "weekdayName", type: "nominal" }, { field: "count", type: "quantitative" }])
)
.title("Weekday Data Distribution")
.width(800)
.height(400)
.render();
}