function chart(root){
let svg = d3.create("svg").attr("viewBox", "0 0 500 600")
let canvas = svg.append("g").classed("canvas", true).attr("transform", "translate(10, 300)")
canvas.append("g")
.classed("links", true)
.selectAll("path.link")
.data(root.links())
.join("path")
.classed("link", true)
.attr("d", treeLink)
.attr("stroke", "#eeeeee")
.attr("stroke-width", 0.8)
.attr("fill", "none")
canvas.append("g")
.classed("labels", true)
.selectAll("text.label")
.data(root.descendants())
.join("text")
.classed("label", true)
.attr("x", (d)=>(d.y + 5))
.attr("y", (d)=>d.x)
.attr("font-size", "0.5em")
.attr("dy", 2.5)
.text((d,i)=>d.data.name)
canvas.append("g")
.classed("nodes", true)
.selectAll("circle.node")
.data(root.descendants())
.join("circle")
.classed("node", true)
.attr("cx", (d)=>d.y)
.attr("cy", (d)=>d.x)
.attr("r", 1.5)
.attr("fill", "black")
return svg.node();
}