D3.js d3-添加不带附加的元素

D3.js d3-添加不带附加的元素,d3.js,D3.js,我有一个演示 我有一个带有鼠标盖的堆叠面积图,上面显示了一个工具提示,其中包含该面积图的信息 我还想在MouseOver上显示该部分中数据点的圆圈 我正在调用一个函数showDataPoints onmouseover,并为该部分传递数据 function showDataPoints(data, block){ let pointData = {}; chartKeys.forEach(key => pointData[key] = data[key]);

我有一个演示

我有一个带有鼠标盖的堆叠面积图,上面显示了一个工具提示,其中包含该面积图的信息

我还想在MouseOver上显示该部分中数据点的圆圈

我正在调用一个函数showDataPoints onmouseover,并为该部分传递数据

function showDataPoints(data, block){
      let pointData = {};
      chartKeys.forEach(key => pointData[key] = data[key]);
      console.log(pointData)

      for(let p in pointData){
        //add circle use data for x pos
      }

      // const dataPoints = block.selectAll('circle')
      //   .data(pointData)

      //   dataPoints
      //     .enter()
      //     .append('circle')
      //     .classed('circles', true)
      //     .style('fill', 'black')
      //     .attr('r', 4)
      //     .attr('cx', (d) => this.x(d))
      //     .attr('cy', (d) => this.y(d))
    }
我无法使用它。输入。附加


有没有一种方法可以在不追加的情况下添加圆圈?原始问题中,不清楚您的具体目标是什么,但您似乎希望使用pointData作为数据数组,因此这里是一个可能的答案草案:

var chartKeys=['1','2','3']; 函数showDataPointsdata,块{ 设pointData=[]; chartKeys.forEachkey=>pointData.push{key:key,value:data[key]}; console.logpointData //打印出[{key:1,value:10},{key:2,value:45},{key:3,value:45}] 常量数据点=块。选择所有“圆” .数据点数据 数据点 进来 .附加“圆圈” //在函数中使用d类似于d={key:three,value:45} }
您的pointData是一个对象,但是.data采用数组。您具体想在何处显示圆?数据点和圆圈之间的关系是什么?