chart2 = {
const svgWidth = 800;
const svgHeight = 800;
const chartWidth = 250;
const chartHeight = 150;
const chartPadding = {v: 20, h:20 };
const wrapper = d3.create("div")
.attr("id", "svg-wrapper")
const cols = 4;
const rows = 3;
const groupped = Array.from(d3.group(aggregated, d => d.country), ([key, values]) => ({ key, values }));
let min = d3.min(data, d => d.mean_SD);
let max = d3.max(data, d => d.mean_SD);
const xScale = d3.scaleTime()
.domain([new Date("2000-01-01"), new Date("2025-01-01")])
.range([0, chartWidth - chartPadding.h]);
const yScale = d3.scaleLinear()
.domain([min, max])
.range([chartHeight - chartPadding.v - chartPadding.v, 0])
const line = d3.line()
.x(d => xScale(d.year))
.y(d => yScale(d.mean_SD));
groupped.forEach(function(dat, i){
const svg = wrapper
.append("svg")
.attr("width", chartWidth)
.attr("height", chartHeight);
const g = svg.append("g")
.attr("class", "group")
.attr('transform', (d, i) => {
return `translate(${chartPadding.h}, ${chartPadding.v})`
});
g.append("text")
.attr("x", 0)
.attr("y", 0)
.text(dat.key)
g.append("path")
.datum(dat.values)
.attr("fill", "none")
.attr("stroke", "steelblue")
.attr("d", line)
})
return wrapper.node()
}