data = {
const categories = {
"A - C : Wasichana": "A - C : Wasichana",
"A - C : Wavulana": "A - C : Wavulana",
"D : Wasichana": "D : Wasichana",
"D : Wavulana": "D : Wavulana",
"F : Wasichana": "F : Wasichana",
"F : Wavulana": "F : Wavulana",
"X : Wasichana": "X : Wasichana",
"X : Wavulana": "X : Wavulana"
};
const data = d3.csvParse(await FileAttachment("necta2021@1.csv").text(), ({speaker: name, ruling: category, count: value}) => categories[category] ? {name, category: categories[category], value: +value} : null);
d3.rollup(data, group => {
const sum = d3.sum(group, d => d.value);
for (const d of group) d.value /= sum;
}, d => d.name);
return Object.assign(data, {
format: ".0%",
negative: "← Wavulana",
positive: "Wasichana →",
negatives: [ "A - C : Wavulana","D : Wavulana","F : Wavulana", "X : Wavulana"],
positives: ["X : Wasichana","F : Wasichana","D : Wasichana","A - C : Wasichana"]
});
}