makeChart3 = (dataset) => {
const data1 = [
{ group: "White", value: 8140 },
{ group: "Black", value: 22384 },
{ group: "Hispanic", value: 9320 },
{ group: "Asian", value: 9320 }
];
const data2 = [
{ group: "White", value: 1942 },
{ group: "Black", value: 2921 },
{ group: "Hispanic", value: 5511 },
{ group: "Asian", value: 3260 }
];
const data3 = [
{ group: "White", value: 17012 },
{ group: "Black", value: 19190 },
{ group: "Hispanic", value: 30877 },
{ group: "Asian", value: 12342 }
];
const data4 = [
{ group: "White", value: 2180 },
{ group: "Black", value: 9752 },
{ group: "Hispanic", value: 1427 },
{ group: "Asian", value: 3363 }
];
const data5 = [
{ group: "White", value: 9259 },
{ group: "Black", value: 27800 },
{ group: "Hispanic", value: 32934 },
{ group: "Asian", value: 20804 }
];
const margin = { top: 30, right: 30, bottom: 70, left: 60 },
width = 460 - margin.left - margin.right,
height = 400 - margin.top - margin.bottom;
const svg = d3
.select("#my_dataviz2")
.append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", `translate(${margin.left},${margin.top})`);
const x = d3
.scaleBand()
.range([0, width])
.domain(data1.map((d) => d.group))
.padding(0.2);
svg
.append("g")
.attr("transform", `translate(0,${height})`)
.call(d3.axisBottom(x));
const y = d3.scaleLinear().domain([0, 35000]).range([height, 0]);
svg.append("g").attr("class", "myYaxis").call(d3.axisLeft(y));
function update(data) {
var u = svg.selectAll("rect").data(data);
u.join("rect")
.transition()
.duration(1000)
.attr("x", (d) => x(d.group))
.attr("y", (d) => y(d.value))
.attr("width", x.bandwidth())
.attr("height", (d) => height - y(d.value))
.attr("fill", "#69b3a2");
}
update(data1);
document.getElementById("button1").onclick = function () {
update(data1);
};
document.getElementById("button2").onclick = function () {
update(data2);
};
document.getElementById("button3").onclick = function () {
update(data3);
};
document.getElementById("button4").onclick = function () {
update(data4);
};
document.getElementById("button5").onclick = function () {
update(data5);
};
return svg.node();
}