D3
OG
Old school D3 from simpler times
All examples
By author
By category
About
andrewthornton
Full window
Github gist
Parabola
Built with
blockbuilder.org
<!DOCTYPE html> <head> <meta charset="utf-8"> <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script> <style> body { margin:0;position:fixed;top:0;right:0;bottom:0;left:0; } svg { width: 100%; height: 100%; } path { fill: none; stroke: teal; } .axis path, line { stroke: #aaa; shape-rendering: crispEdges; } .axis text { fill: #aaa; font-size: 11px; } </style> </head> <body> <script> var margin = {top: 50, right: 50, bottom: 50, left: 50}; var width = 960 - margin.left - margin.right; var height = 500 - margin.top - margin.bottom; var svg = d3.select("body").append("svg") .attr("width", width + margin.left + margin.right) .attr("height", height + margin.top + margin.bottom) .append("g") .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); var fn = function (x) { return Math.pow(x, 2); }; var x = d3.scale.linear() .range([0, width]); var y = d3.scale.linear() .range([height, 0]); var xAxis = d3.svg.axis() .scale(x); var yAxis = d3.svg.axis() .orient('left') .scale(y); var line = d3.svg.line() .interpolate('basis') .x(function (d) {return x(d.x);}) .y(function (d) {return y(d.y);}); 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, d3.max(data, function (d) {return d.y;})]); 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); </script> </body>
https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js