我正在尝试创建一个从单层开始的朝阳图,当悬停特定弧时,将显示该类别的下一个级别(仅适用于该类别)。我似乎无法找出更深层次的方法,并且一直在寻找有关此问题的指导。
我一直使用this block作为参考,但是我的需求对此太具体了。
对于第一层,它可以工作-我可以显示所有层。
var arcg = pieGroup.selectAll("path")
.data(firstLevelData, function(d){return d.data.name})
.enter().append("path")
.attr('class', 'arcpath')
.attr("d", arc)
.attr('opacity', 0.5)
.style("fill", function(d) {return color((d.children ? d : d.parent).data.name); }).append("title")
.text(function(d) { return d.data.name + "\n" + (d.value); });
在这些弧线之一悬停时,我使用以下代码:
if(selectedArc.height != 0){ // if a parent of a node
stuff = allData.filter(function(d){
return d.parent.data.name === selectedArc.data.name});
stuffs = pieGroup.selectAll('.arcpath').data(allData, function(d){return d.data.name})
stuffs.enter().append("path")
.attr('class', 'arcpath')
.attr("d", arc)
.style("fill", function(d) {return color((d.children ? d : d.parent).data.name); })
.style('opacity', 0.5)
.append("title")
.text(function(d) { return d.data.name + "\n" + (d.value); })
}
这可以使弧出现在弧的第二层(深度2),尽管我不确定如何与第二层进行交互-我将以“操纵杆”的方式从森伯斯特的中间盘旋,所以我希望能够扩展我希望的任何部门。
有没有类似的例子?谢谢!