[英]D3js: Draw pack layout without the outermost circle
我正在尝试在d3.js中绘制没有最外层变量的包布局。 我想绘制一个没有最外面的父圆的背包布局。 有什么办法吗?
就在这里。 我建议采用以下方法:完整保留所有Circle Pack初始化。 您只需更改将圆环实际附加到DOM / SVG树的代码点。 我将在几个示例中对此进行展示。 此jsfiddle是“常规”圈子包的示例:
负责将圆添加到DOM树的关键代码是这样的:
var circles = vis.append("circle")
.attr("stroke", "black")
.style("fill", function(d) { return !d.children ? "tan" : "beige"; })
.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; })
.attr("r", function(d) { return d.r; });
如果只是在“ vis”和“ .append(” circle“)”之间添加这一行:( 此处提供另一种jsfiddle)
.filter(function(d){ return d.parent; })
根节点将消失:
如果添加此行:
.filter(function(d){ return !d.children; })
除离开节点(换句话说,没有子节点)以外的所有节点都将消失:
而且,稍微复杂一点
.filter(function(d){ return (d.depth > 1); })
将使根父圆及其所有直接子圆消失:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.