Published
Edited
Importers
Insert cell
Insert cell
Insert cell
Insert cell
covid = d3.csvParse(await FileAttachment("VDH-COVID-19-PublicUseDataset-Cases-2.csv").text(), function(d) {
return {
date: d3.timeParse("%x")(d["Report Date"]),
fips: d.FIPS,
locality: d.Locality,
district: d["VDH Health District"],
cases: +d["Total Cases"],
hospitalizations: +d.Hospitalizations,
deaths: +d.Deaths
};})
.sort(function (a, b) {return a.date - b.date;});
Insert cell
Insert cell
covid_totals = covid.filter(d => d.date >= covid[covid.length-1].date)
Insert cell
Insert cell
hr_districts = new Set(["Western Tidewater", "Chesapeake", "Virginia Beach", "Norfolk", "Portsmouth", "Hampton", "Peninsula"])
Insert cell
hr_covid = covid.filter(d => hr_districts.has(d.district))
Insert cell
hr_totals = covid_totals.filter(d => hr_districts.has(d.district))
Insert cell
Insert cell
casesHospPerDay =
d3.rollups(covid, v => [d3.sum(v, d => d.cases), d3.sum(v, d => d.hospitalizations)], d => d.date)
.map(obj => {let rObj= {}; rObj["date"] = obj[0]; rObj["cases"] = obj[1][0];
rObj["hospitalizations"] = obj[1][1]; return rObj;})
Insert cell
Insert cell
casesPerDay =
d3.rollups(covid, v => d3.sum(v, d => d.cases), d => d.date)
.map(obj => {let rObj= {}; rObj["date"] = obj[0]; rObj["cases"] = obj[1]; return rObj;})
Insert cell
Insert cell
Insert cell
hrCasesPerDay = {
const data = d3.rollup(hr_covid, v => d3.sum(v, d => d.cases), d => d.district, d => d.date);
return Array.from(data, ([district, date]) => ({
district: district,
counts: Array.from(date, ([date, cases]) => ({date, cases}))
}));
}
Insert cell
dates = hrCasesPerDay[0].counts.map(c => c.date)
Insert cell
hrMaxDistCases = d3.max(hrCasesPerDay, d => d3.max(d.counts, e => e.cases))
Insert cell
Insert cell
hrDistrictCases = {
return d3.rollups(hr_totals, v => d3.sum(v, d => d.cases), d => d.district)
.map(obj => {let rObj= {}; rObj["district"] = obj[0]; rObj["cases"] = obj[1]; return rObj;})
.sort(function (a, b) {return a.cases - b.cases;});
}
Insert cell
Insert cell
d3 = require("d3@6")
Insert cell
import { vl } from "@vega/vega-lite-api"
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more