Skip to content

Instantly share code, notes, and snippets.

@eMahtab
Created February 24, 2016 18:15
Show Gist options
  • Save eMahtab/5f09016c0e80ea07c7ef to your computer and use it in GitHub Desktop.
Save eMahtab/5f09016c0e80ea07c7ef to your computer and use it in GitHub Desktop.
D3 Horizontal Menu
<script>
var width=1200;
var height=640;
var canvas=d3.select("body")
.append("svg")
.attr("width",width)
.attr("height",height)
.append("g")
.attr("transform","translate(50,50)");
var tree=d3.layout.tree()
.size([590,900]);
d3.json("menu.json",function(data){
var nodes=tree.nodes(data);
console.log(nodes);
var links=tree.links(nodes);
var node=canvas.selectAll(".node")
.data(nodes)
.enter()
.append("g")
.attr("class","node")
.attr("transform",function(d){ return "translate("+d.y+","+d.x+")"; })
node.append("circle")
.attr("r",5)
.attr("fill","steelblue");
node.append("text")
.text(function(d) {return d.name;})
.attr("x", function(d) {
return d.children || d._children ? -10 : 10; })
.attr("y", function(d) {
return d.children || d._children ? -8 : 4; })
var diagonal=d3.svg.diagonal()
.projection(function (d){return [d.y,d.x]; });
canvas.selectAll(".link")
.data(links)
.enter()
.append("path")
.attr("class","link")
.attr("fill","none")
.attr("stroke","black")
.attr("d",diagonal) ;
})
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment