distort = (data, recurse) => {
return recurser(data, recurse)
function recurser(data, recurse) {
if(!recurse) return data
const extent = d3.extent(data)
const warp = (extent[1] - extent[0]) * Math.random()
const cut = Math.floor(data.length / 2)
const cut1 = data.slice(0, cut)
const cut2 = data.slice(cut)
const scale1 = d3.scaleLinear()
.domain(d3.extent(cut1))
.range([extent[0], extent[0] + warp])
const scale2 = d3.scaleLinear()
.domain(d3.extent(cut2))
.range([extent[0] + warp, extent[1]])
return recurser(cut1.map(scale1), recurse - 1)
.concat(recurser(cut2.map(scale2), recurse - 1))
}
}