dig
Version:
Graph algorithms
40 lines (34 loc) • 978 B
HTML
<svg width="800" height="600"/>
<script src="dig.js"></script>
<script src="http://d3js.org/d3.v2.min.js"></script>
<script>
function draw(g) {
var svg = d3.select("svg");
svg.selectAll("g").remove();
svg = svg.append("g").attr("transform", "translate(20, 20)");
dig.dot.layout(g);
var nodes = [];
g.nodes().forEach(function(u) {
nodes.push({x: g.node(u).x, y: g.node(u).y, label: u});
});
var anchors = svg
.selectAll("g")
.data(nodes)
.enter()
.append("g")
.attr("transform", function(d) { return "translate(" + d.x + "," + d.y +")"; });
anchors
.append("circle")
.attr("r", 5)
.style("fill", "#555");
anchors
.append("text")
.text(function(d) { return d.label; })
.attr("transform", "translate(10, 0)");
}
</script>
<script>
var g = dig.dot.read("digraph { A -> B -> D -> G -> I; A -> C -> F -> H -> I}")
draw(g);
</script>