2013-10-24 53 views
0

我試圖建立一個圖(使用d3.js)每個刻度兩個酒吧。如何獲取json數據中每個條的值?

我不知道它的結構是最適合與數據的工作,我已經試過這樣的事情:

var dataset = [ 
    { 
     'month': 'Jan', 
     'count': { 
      'red': 29, 
      'white': 32 
     } 
    }, 
    { 
     'month': 'Feb', 
     'count': { 
      'red': 23, 
      'white': 42 
     } 
    }, 
    { 
     'month': 'Mar', 
     'count': { 
      'red': 34, 
      'white': 47 
     } 
    } 
]; 

我怎樣才能爲每一個酒吧?

我已經試過這

function red(d, i) { return d[i]['red']; } 

chart.selectAll('rect') 
    .data(dataset, red) 
    .enter().append('rect') 
    .attr('x', 0) 
    .attr('y', 0) 
    .attr('width', 20) 
    .attr('height', 100); 

(不介意的事實,我使用固定值X,Y,寬度和高度。這只是一個例子。)

+0

dataset json data is invalid,you missed single quote(')for「count」property。 – anand4tech

+0

哦,錯過了。我編輯了這個問題。 – danielcorreia

回答

0

您可以嘗試將每一對酒吧放在g元素中。這樣的事情:

var groups = chart.selectAll('g') 
    .data(dataset) 
    .enter().append('g'); 

var reds = groups.append('rect') 
    .datum(function(d) { return d.count.red; }) 
    .attr('class', 'red'); 

var whites = groups.append('rect') 
    .datum(function(d) { return d.count.white; }) 
    .attr('class', 'white'); 
+0

非常好!謝謝。 – danielcorreia