与悬停的森伯斯特图深度交互

时间:2018-07-21 01:05:31

标签: javascript d3.js data-visualization pie-chart sunburst-diagram

我正在尝试创建一个从单层开始的朝阳图,当悬停特定弧时,将显示该类别的下一个级别(仅适用于该类别)。我似乎无法找出更深层次的方法,并且一直在寻找有关此问题的指导。

我一直在使用此块作为参考,但是我的需求对此太具体了。

对于第一层,它可以工作-我可以显示所有层。

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),尽管我不确定如何与第二层进行交互-我将以“操纵杆”的方式从森伯斯特的中间盘旋,所以我希望能够扩展我希望的任何部门。

有没有类似的例子?谢谢!

0 个答案:

没有答案