Sha256: 0253891c506c88f51adcef41c5e821c8a4865f6764f8963f3e2301f5ff20c1ea
Contents?: true
Size: 1.61 KB
Versions: 6
Compression:
Stored size: 1.61 KB
Contents
var w = 960, h = 500, fill = d3.scale.category20(); var vis = d3.select("#chart") .append("svg:svg") .attr("width", w) .attr("height", h); d3.json("miserables.json", function(json) { var force = d3.layout.force() .charge(-120) .linkDistance(30) .nodes(json.nodes) .links(json.links) .size([w, h]) .start(); var link = vis.selectAll("line.link") .data(json.links) .enter().append("svg:line") .attr("class", "link") .style("stroke-width", function(d) { return Math.sqrt(d.value); }) .attr("x1", function(d) { return d.source.x; }) .attr("y1", function(d) { return d.source.y; }) .attr("x2", function(d) { return d.target.x; }) .attr("y2", function(d) { return d.target.y; }); var node = vis.selectAll("circle.node") .data(json.nodes) .enter().append("svg:circle") .attr("class", "node") .attr("cx", function(d) { return d.x; }) .attr("cy", function(d) { return d.y; }) .attr("r", 5) .style("fill", function(d) { return fill(d.group); }) .call(force.drag); node.append("svg:title") .text(function(d) { return d.name; }); vis.style("opacity", 1e-6) .transition() .duration(1000) .style("opacity", 1); force.on("tick", function() { link.attr("x1", function(d) { return d.source.x; }) .attr("y1", function(d) { return d.source.y; }) .attr("x2", function(d) { return d.target.x; }) .attr("y2", function(d) { return d.target.y; }); node.attr("cx", function(d) { return d.x; }) .attr("cy", function(d) { return d.y; }); }); });
Version data entries
6 entries across 6 versions & 1 rubygems