JSFiddle - React, Tailwind, and code Playground
by Patricia Warwick
JavaScript
function update(selectedOption) {// console.log(selectedOption) OK
// Define color scale
if (selectedOption == "Not Resolved") { // console.log(selectedOption)
var color = d3.scale.linear()
.domain([0, 80])
.range(["LightCyan","Crimson"]);
} else if (selectedOption == "Resolved"){ // console.log(selectedOption)
color = d3.scale.linear()
.domain([0, 20])
.range(["LightCyan","Crimson"]);
} else if (selectedOption == "Fatal"){ // console.log(selectedOption)
color = d3.scale.linear()
.domain([0, 0.2])
.range(["LightCyan","Crimson"]);
}
// Load the data from the csv file
d3.csv(phuCSV, function(cases) {
cases = cases.filter(function(d) {
var keyDate = parseDate(d.Case_Reported_Date); //console.log("keyDate ", keyDate);
var daysDiff = d3.timeDay.count(keyDate, filterDate); // console.log ("daysDiff ", daysDiff);
return daysDiff <= maxDays;
});
cases = cases.filter(function(d) { // console.log("selectedOption ",selectedOption, " d.Outcome1 ",d.Outcome1)
return d.Outcome1 == selectedOption;
});
// count the consoles for each PHU
cases = d3.nest()
.key(function(d, i) {
return d.Reporting_PHU; // sort by PHU
})
.rollup(function(v) { return v.length; })
.sortKeys(d3.ascending)
.entries(cases);
cases.forEach(function(d) {
d.values = +d.values;
});
// calculate the rates - divide count by population
d3.csv(phuPopulationCSV, function(PHUpopulation) {
cases.forEach(function(d) {
PHUpopulation.forEach (function(e) {
if (e.Reporting_PHU == d.key) {
d.rate = d.values/e.Population*100000; // console.log ("e.Population ",e.Population); // number
d.count = d.values;
} // end if
}) // end PHUs.forEach
}) // end...