0
私はこの形式でいくつかのネストされたデータを持っている:私は複数行のグラフに円を追加するには、このデータを使用しようとしているD3アクセスネストしたデータ
[{"key":"PFOA",
"values":[
{"sampleDate":"2016-0126T05:00:00.000Z",
"shortName":"PFOA",
"pfcLevel":0,
"chemID":1},
{"sampleDate":"2016-01-19T05:00:00.000Z",
"shortName":"PFOA",
"pfcLevel":0,
"chemID":1},
{"sampleDate":"2016-01-12T05:00:00.000Z",
"shortName":"PFOA",
"pfcLevel":0,
"chemID":1}
],
"visible":0}
]
。生の非ネスト・データをデータベースから直接使用するが、それは他の問題を引き起こしている場合、これを行うことができます。可能であれば、ラインとサークルに同じネストされたデータを使用したいと思います。ネスト機能やサークルのコードは以下の通りです:
var nested_data = d3.nest()
.key(function(d) { return d.shortName; })
.entries(data);
var circles = svg.selectAll(".circle")
.data(nested_data)
.enter().append("g")
.attr("class", "circle");
circles.append("circle")
.attr("stroke", function(d) { return color(d.key); })
.attr("fill", "white")
.attr("cx", function(d, i) { return x(d.values['sampleDate']) })
.attr("cy", function(d, i) { return y(d.values['pfcLevel']) })
.attr("r", 2);
私はd.values[sampleDate]
または.data(nested_data.values)
のような別のものを試してみたが、私はそれらのすべてに未定義のエラーを取得しています。
ありがとうございます。あなたがNested Selectionを探している
の代わりに' circles.append( "円")を 'やって、第二の文を入力をしてみてください...)。enter()。append( "circle") '' data(...) 'はローカルの' values'配列を返します。 – JSBob
それはうまくいくかもしれませんが、d.keyやd.visibleのような上位レベルの要素にもアクセスする必要があります。とにかくそれらすべてにアクセスできるようにするには? – JamesE
あなたのニーズに合う場合は、データ関数でそれらを渡すことができます。 (var x = 0; x
JSBob