bu formatta bazı yuvalanmış veriler var: Ben bir çok satırlı grafiğinin çevre eklemek için bu verileri kullanmaya çalışıyorumD3 erişim yuvalanmış veriler
[{"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}
]
. Ham, iç içe olmayan verileri doğrudan veritabanından kullanırsam bunu yapabilirim, ancak başka sorunlara neden oluyor. Mümkünse çizgiler ve daireler için aynı iç içe geçmiş verileri kullanmayı tercih ederim. yuva işlevi ve daire kod aşağıda: Ben d.values[sampleDate]
veya .data(nested_data.values)
gibi farklı şeyler denedim ama hepsi üzerinde tanımsız hataları alıyorum
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);
.
Şimdiden teşekkürler.
yerine 'circles.append ("çember")' yapmanın, ikinci girmek deyimi yapmayı deneyin. 'Circles.selectAll ("çember") veri (...). enter(). append ("circle") 'nerede' data (...) 'yerel' değerler 'dizisini döndürür. – JSBob
Bu işe yarardı, ancak ayrıca d.key ve d.visible gibi daha yüksek düzeydeki öğelere de erişmem gerekiyor. Neyse, hepsine erişebilmek için? – JamesE
Gereksinimlerinize uygun olacaksa bunları veri işlevinde iletebilirsiniz. circles.selectAll ("circle") veri (function (d) {var tempArr = []; for (var x = 0; x
JSBob