如何删除D3中的特定图例

时间:2017-09-25 09:51:49

标签: d3.js graph

svgData = svg.select('g.data').selectAll('g.datum').data data, (d)-> d.key
newData = svgData.enter()
      .append 'g'
      .classed 'datum', true
legends = newData.append 'g'
      .classed 'legend-entry', true
      .attr 'opacity', 1
      .on 'click', hidden.toggle
legends.append 'circle'
      .attr 'r', 2
      .attr 'cx', 1
      .attr 'stroke-width', 1
      .attr 'fill', (d)-> scales.color(d.key)
      .attr 'stroke', (d)-> scales.color(d.key)
legends.append 'text'
      .attr 'x', 5
      .attr 'y', 2.5
      .attr 'font-size', 7
      .text (d)-> d.key

legends = svg.selectAll('g.legend-entry') #separate selection to get both old and new for positioning  <br/>

这里svgData是出现在图例上的旧数据,newData是我要附加到图例的数据。在附加newData之前,我想删除一些图例。我想从图例中删除的数据存储在变量say removeLegend中。我想在从newdata追加数据之前删除所有这些图例。任何帮助,将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

括号在哪里?

您只需遵循选择绑定计划:更新,进入和退出。

  

更新:绑定数据并比较
  输入:如果有比图例项更多的数据则创建新项目
  退出:如果数据少于图例项,则删除旧项(这正是您想要的)。

{{3}}是Mike Bostock的详细教程。