使圆环图可点击

Make donut chart clickable

任何人都可以帮助我如何使我的以下圆环图可点击吗?我只是从一些虚拟数据创建一个甜甜圈图表,并希望甜甜圈的每个部分都可以点击。我是 D3 的新手,发现很难将点击功能合并到圆环图中。 我发现很难在 d3.js 中使圆环图的每个部分都可点击。任何帮助表示赞赏。我在这里添加了我的代码片段。

function myFunction(width,height,margin,datax,dis,hg) {
    var radius = Math.min(width, height) / 2 - margin
    var svg = d3.select("#my_dataviz")
      .append("svg")
        .attr("width", width)
        .attr("height", hg)
      .append("g")
        .attr("transform", "translate(" + width / dis + "," + height / 2 + ")");
    var color = d3.scaleOrdinal()
      .domain(Object.keys(data))
      .range(d3.schemeDark2);
    var pie = d3.pie()
      .sort(null) 
    .value(function(d) {return d.value; })  
    var data_ready = pie(d3.entries(data))
    var arc = d3.arc()
      .innerRadius(radius * 0.5)       
    .outerRadius(radius * 0.8)
    svg
      .selectAll('allSlices')
      .data(data_ready)
      .enter()
      .append('path')
      .attr('d', arc)
      .attr('fill', function(d){ return(color(d.data.key)) })
      .attr("stroke", "white")
      .style("stroke-width", "2px")
    .style("opacity", 0.7)
    ;  }
    <script src="https://d3js.org/d3.v4.js"></script>
    <script src="https://d3js.org/d3-scale-chromatic.v1.min.js"></script>

你只需要select全部path并绑定事件点击就可以了

svg.selectAll('path')
   .on('click', (d, i, n) => {
      console.log(d, i, n)
   })