d3 kullanarak bir güç düzeni oluşturdum ve iyi çalışıyor. Benim ilk veri bir json dosyasından yüklenir ve grafik this d3.js example benzer tekniklerle çizilir: Artık grafik I düğümleri, güncelleme eklemek ve kaldırmak için gereken ekranda olduğunu Bir d3 Kuvvet Düzeni'nde var olan düğümleri güncelleştirme
bir web soketi üzerinden aldığım verilerden uçmak. Çalışan yöntemleri ekleyip kaldırdım ancak mevcut bir düğümün özelliklerini güncellemenin doğru yolunu bulamıyorum.
Yaptığım okumadan doğru tekniği topladığımda veri kaynağını değiştirmek, ardından enter() yöntemini kullanarak grafiği güncelleştirmek.
yapıyorum bir düğümü güncellemek için aşağıdakileri yapın:function updateNode(id, word, size, trend, parent_id){
var updateNode = nodes.filter(function(d, i) { return d.id == id ? this : null; });
if(updateNode[0]){
updateNode.size = Number(size);
updateNode.trend = trend;
nodes[updateNode.index] = updateNode;
update();
}
}
güncelleme fonksiyonu daha sonra düğümlerin günceller:
function update(){
node = vis.selectAll('.node')
.data(nodes, function(d) {
return d.id;
})
createNewNodes(node.enter());
node.exit().remove();
force.start();
}
function createNewNodes(selection){
var slct = selection.append('g')
.attr('class', 'node')
.call(force.drag);
slct.append('circle')
.transition()
.duration(500)
.attr('r', function(d) {
if(d.size){
return Math.sqrt(sizeScale(d.size)*40);
}
})
}
Bunun için doğru bir yaklaşım alıyor muyum? Bu kodu denediğimde, daire üzerinde yarıçap özniteliğini ayarlamaya çalışırken veri noktası olarak aldığım düğüm, düğüm dizisindeki son düğümdür. Yani Tek bir düğüm nesnesi yerine hiyerarşik düğüm verilerini içeren.
Herhangi işaretçiler büyük ölçüde bu :) çok fazla zaman harcadım, mutluluk duyacağız
ihtiyacınız birden noktaları vardır
Ben aynı sorun var: Ben ilk bu sorunu ele zaman
Daha fazlasını okumak için, bu soru benim altın madeni oldu. bir çözüm buldun mu? –kodunuzu çevrimiçi bir editöre koyabilir, örneğin http://phrogz.net/JS/d3-playground/#BlankDefault – ppoliani