chart = {
const [width, height] = [900, 550];
const svg = d3.select(DOM.svg(width+50, height+50))
.style("padding", "10px")
var fn = x => Math.pow(x, 2);
var x = d3.scaleLinear()
.range([0, width]);
var y = d3.scaleLinear()
.range([height, 0]);
var xAxis = d3.axisBottom()
.scale(x);
var yAxis = d3.axisLeft()
.scale(y);
var line = d3.line()
.x(function (d) {return x(d.x);})
.y(function (d) {return y(d.y);})
.curve(d3.curveMonotoneX);
var data = d3.range(-10, 11).map(function (d) {
return {x:d, y:fn(d)};
});
x.domain(d3.extent(data, function (d) {return d.x;}));
y.domain([0, 10]);
svg.append('g')
.attr('class', 'axis')
.attr('transform', 'translate(0,' + height + ')')
.call(xAxis);
svg.append('g')
.attr('class', 'axis')
.attr('transform', 'translate(' + width/2 + ',0)')
.call(yAxis);
svg.append('path')
.datum(data)
.attr('d', line);
return svg.node();
}