steppedChartNorm = (variable, title) => {
let data = rawFrance.map(d => ({
date: d.date,
value: parseFloat(d[variable]) - floor(d, variable),
floor: floor(d, variable)
}))
let min = d3.min(data, d => d.value)
let max = d3.max(data, d => d.value)
let y = d3.scaleLinear()
.domain([min, max]).nice()
.range([height-margin.bottom, margin.top])
const svg = d3.create("svg").attr("viewBox", [0, 0, width, height])
steps.map(date =>{
svg.append('svg:line')
.attr('x1', x(new Date(date)))
.attr('y1', d3.max(y.range()))
.attr('x2', x(new Date(date)))
.attr('y2', d3.min(y.range()))
.attr('stroke', '#ddd')
})
svg.append('path')
.attr('fill', 'black')
.attr("d", areaNormPos(data, y))
svg.append('path')
.attr('fill', '#ccc')
.attr("d", areaNormNeg(data, y))
let xAxis = g => g
.attr("transform", `translate(0,${height-margin.bottom})`)
.call(d3.axisBottom(x).ticks(d3.timeMonth).tickSizeOuter(0))
let yAxis = g => g
.attr("transform", `translate(${margin.left},0)`)
.call(d3.axisLeft(y))
svg.append("g")
.call(xAxis);
svg.append("g")
.call(yAxis);
svg.append('text')
.attr("text-anchor", "end")
.style('font', '13px times')
.attr("x", width - margin.right)
.attr("y", height-5)
.text(title)
return svg.node()
}