繁体   English   中英

D3js:绘图包布局不包含最外面的圆

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM