Public
Edited
Apr 4, 2023
Insert cell
Insert cell
Insert cell
final_data
Insert cell
data = FileAttachment("trends.csv").csv()
Insert cell
data_2020 = data.filter((d) => d.Year === "2020")
Insert cell
religious_data = FileAttachment("religiousity_2020.csv").csv()
Insert cell
required_data = d3.rollup(
data_2020,
(v) =>
d3.mean(
v,
(d) =>
(parseInt(d["Deaths"]) * 100000) /
parseInt(d["Population"].replace(",", ""))
),
(d) => d["State"]
)
Insert cell
function generateMapToArray(map) {
let arr = [];

for (let [k, v] of map.entries()) {
arr.push({
state: k,
rate: v.toFixed(2),
religious: religiousity_state_map.get(k)
});
}

return arr;
}
Insert cell
function religiousStates() {
let map = new Map();

religious_data.forEach((r) => {
map.set(r.State, r.Religious);
});

return map;
}
Insert cell
final_data = generateMapToArray(required_data)
Insert cell
religiousity_state_map = religiousStates()
Insert cell
usStates = d3.csv(
"https://raw.githubusercontent.com/kristw/gridmap-layout-usa/master/src/input/states.csv"
)
Insert cell
function generateArrayToMap(arr) {
let map = new Map();

arr.forEach((s) => {
map.set(s.name, s.key);
});

return map;
}
Insert cell
states_abbr = generateArrayToMap(usStates)
Insert cell
function mapStatesRedBlue() {
let colorStates = new Map();
let red = [
"Alabama",
"Alaska",
"Arizona",
"Arkansas",
"Georgia",
"Idaho",
"Indiana",
"Iowa",
"Kansas",
"Kentucky",
"Louisiana",
"Mississippi",
"Missouri",
"Montana",
"Nebraska",
"North Carolina",
"North Dakota",
"Oklahoma",
"South Carolina",
"South Dakota",
"Tennessee",
"Texas",
"Utah",
"West Virginia",
"Wyoming"
];

let blue = [
"California",
"Colorado",
"Connecticut",
"Delaware",
"District of Columbia",
"Hawaii",
"Illinois",
"Maine",
"Maryland",
"Massachusetts",
"Michigan",
"Minnesota",
"Nevada",
"New Hampshire",
"New Jersey",
"New Mexico",
"New York",
"Oregon",
"Pennsylvania",
"Rhode Island",
"Vermont",
"Virginia",
"Washington",
"Wisconsin",
"Florida",
"Ohio"
];

red.forEach((r) => {
colorStates.set(r, "red");
});

blue.forEach((r) => {
colorStates.set(r, "blue");
});

return colorStates;
}
Insert cell
states_color = mapStatesRedBlue()
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