2017-01-18 31 views
1

d.bubbledata.values.valueまたはd.bubbledata.values[0].valueを試しましたが、結果が得られませんでした。JSONからD3.jsにデータを取得

どのようにすべての価値あるプロパティを取得できますか?

var circles = svg.selectAll(".bubble") 
     .data(json) 
     .enter().append("circle") 
     .attr("class","bubble") 
     .attr("r", function(d) { 
      return d.bubbledata.values[0].value; 
     }) 

と私のJSONは次のとおりです:

私のコードがある

{ 
      "categories": [ 
      "2003", 
      "2004" 
      ], 
"bubbledata": { 
    "values": [ 
     { 
     "id": "346462", 
     "name": "blabla1", 
     "color": "#3a3790", 
     "bordercolor": "#3a3790", 
     "value": 0.82908, 
     "label": 9.2942 
     }, 
     { 
     "id": "346131", 
     "name": "blabla2", 
     "color": "#ea772a", 
     "bordercolor": "#ea772a", 
     "value": 0.26954, 
     "label": 3.0216 
     } 
] 
} 
} 

答えて

1

ここでの問題はdata()関数に渡されるデータです。 D3で

data()は三つ受け入れる:あなたが今やっているよう

  1. 配列
  2. 機能
  3. 何も

はこのように、あなたは、オブジェクトを渡すことはできません。

var circles = svg.selectAll(".bubble") 
    .data(json.bubbledata.values)//this is an array 
    .enter().append("circle") 
    .attr("class","bubble") 
    .attr("r", function(d) { 
     return d.value;//the "value" in each object 
    }) 
+0

ありがとう:あなたは配列dataに渡す必要があります。私は上記に追加したい。誰かが "forceCollide"を使用する場合は、JSON.parse()を追加する必要があります。たとえば、 'return JSON.parse(d.somevalue)'のようになります。 –

関連する問題