D3
OG
Old school D3 from simpler times
All examples
By author
By category
About
sconner
Full window
Github gist
The Trees in Champaign by Number of Specimens (y axis) and Average Diameter (x axis)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Trees in Champaign</title> <script type="text/javascript" src="https://d3js.org/d3.v3.min.js"></script> <style type="text/css"> body { background-color: white; font-family: Helvetica, Arial, sans-serif; } h1 { font-size: 24px; margin: 0; } p { font-size: 14px; margin: 10px 0 0 0; } svg { background-color: white; } circle:hover { fill: orange; } .axis path, .axis line { fill: none; stroke: black; shape-rendering: crispEdges; } .axis text { font-family: sans-serif; font-size: 11px; } </style> </head> <body> <h1>Trees of Champaign</h1> <p>The trees owned by the city of Champaign, Illinois: number of specimens (x-axis) and average diameter (y-axis). <br>Data source: <a href="https://data.illinois.gov/Municipality/Trees-Owned-by-the-City-of-Champaign/dzge-uybj">data.illinois.gov</a></p> <script type="text/javascript"> var w = 700; var h = 600; var padding = [ 20, 10, 50, 50 ]; //Top, right, bottom, left var xScale = d3.scale.linear() .range([ padding[3], w - padding[1] - padding[3] ]); var yScale = d3.scale.linear() .range([ padding[0], h - padding[2] ]); var xAxis = d3.svg.axis() .scale(xScale) .orient("bottom"); var yAxis = d3.svg.axis() .scale(yScale) .orient("left"); var svg = d3.select("body") .append("svg") .attr("width", w) .attr("height", h); d3.csv("Champaign-trees-diam-totals.csv", function(data) { xScale.domain([ d3.min(data, function(d) { return +d.avgDiameter; }), d3.max(data, function(d) { return +d.avgDiameter; }) ]); yScale.domain([ d3.max(data, function(d) { return +d.totalSpecimens; }), d3.min(data, function(d) { return +d.totalSpecimens; }) ]); var circles = svg.selectAll("circle") .data(data) .enter() .append("circle"); circles.attr("cx", function(d) { return xScale(d.avgDiameter); }) .attr("cy", function(d) { return yScale(d.totalSpecimens); }) .attr("r", 4) .attr("fill", "steelblue") .append("title") .text(function(d) { if (d.commonName.indexOf(", ") != -1) { return "Champaign has " + d.totalSpecimens + " " + d.commonName.replace(", "," (") + ") trees with an average diameter of " + Math.round(d.avgDiameter) + " feet. "; } else { return "Champaign has " + d.totalSpecimens + " " + d.commonName + " trees with an average diameter of " + Math.round(d.avgDiameter) + " feet. "; } }); svg.append("g") .attr("class", "x axis") .attr("transform", "translate(0," + (h - padding[2] + 10) + ")") .call(xAxis); svg.append("g") .attr("class", "y axis") .attr("transform", "translate(" + (padding[3] - 10) + ",0)") .call(yAxis); }); </script> </body> </html>
Modified
http://d3js.org/d3.v3.min.js
to a secure url
https://d3js.org/d3.v3.min.js