Javascript 如何使用d3在数据中选择类别

Javascript 如何使用d3在数据中选择类别,javascript,d3.js,Javascript,D3.js,我是D3的初学者,任何帮助都将不胜感激 在该图表中,为“wins”类别的每个条目生成一个圆。因此,在本例中,有4个圆以不同的半径生成 我想返回“wins”的数据,但只返回“最佳图片”类别的数据。在这种情况下,只会生成2个圆圈。这可以通过添加到函数--.attr('r',函数(d){return radiuscale(d.wins);})来实现吗?如果可以,我应该更改什么 var data = [ {decade: '1920s', category: 'Best Picture'

我是D3的初学者,任何帮助都将不胜感激

在该图表中,为“wins”类别的每个条目生成一个圆。因此,在本例中,有4个圆以不同的半径生成

我想返回“wins”的数据,但只返回“最佳图片”类别的数据。在这种情况下,只会生成2个圆圈。这可以通过添加到函数--.attr('r',函数(d){return radiuscale(d.wins);})来实现吗?如果可以,我应该更改什么

var data = [
        {decade: '1920s', category: 'Best Picture', wins: 2, nominations: 3},
        {decade: '1920s', category: 'Best Director', wins: 1, nominations: 9},
        {decade: '1930s', category: 'Best Picture', wins: 3, nominations: 6},
        {decade: '1930s', category: 'Best Director', wins: 1, nominations: 7},

];

var radiusScale = d3.scale.sqrt().domain([0, 40]).range([0, 40]);



d3.select('svg')
    .selectAll('circle')
    .data(data)
    .enter()
    .append('circle')
    .attr('r', function(d) {return radiusScale(d.wins);})
    .attr('cx', function(d, i) {return i * 80 + 50;})
    .attr('cy', 50);    
使用该函数仅获取所需的数据元素:

d3.select('svg')
  .selectAll('circle')
  .data(data.filter(function(d) { return d.category == "Best Picture"; }))
  .enter()
  ...