chart = {
const width = 800;
const height = 400;
const margin = {top: 20, right: 30, bottom: 30, left: 40}
const xScale = scaleLinear()
.domain(extent(data, d => d.generation))
.range([margin.left, width - margin.right])
const yScale = scaleLinear()
.domain([0, 1])
.range([height - margin.bottom, margin.top])
const xAxis = g => g
.attr("transform", `translate(0,${height - margin.bottom})`)
.call(axisBottom(xScale).ticks(width / 80))
const yAxis = g => g
.attr("transform", `translate(${margin.left},0)`)
.call(axisLeft(yScale))
const line = d3.line().x(d => d).y(d => d);
const lineGenerator = line()
.x(d => xScale(d.generation))
.y(d => yScale(d.frequency))
}