Güç düzenleri ile sıradan bir şey yapmak istiyorum (grafikleri görselleştirmek için). Takımyıldızları ve hepsine bakmak eğlencelidir, ancak zaman çizelgeleri verileri için bu yararlı değildir. Düzeni bir eksenle sınırlamak isterim, örneğin, düğümleri bir veri kümesinde göründükleri zamana göre yerleştirerek, görselleştirmenin "zıplamasını" koruyarak. Bu d3 kullanarak mümkün mü?Kısıtlı d3.js Kuvvet göstergesi
cevap
Benim yorumumu detaylandırmak için, evet, bu mükemmel bir şekilde mümkündür. Kuvvet düzeni aslında düğümlerin kendisini konumlandırmaz, sadece konumları hesaplar. tick
olayının işleyicisinde, genellikle konumlandırmayı işleyen işlevi sağlarsınız. Orada, düğümlerin nasıl hareket edeceğini kısıtlayan keyfi kısıtlamalar ekleyebilirsiniz.
stock examples'dan birini kullanarak, x koordinatını sınırsız y ile hedeflenen konumun + -10'u içinde sınırlamak için aşağıdaki gibi şeyler yapabilirsiniz. İşte
force.on("tick", function() {
node.each(function(d) {
var intended = scale(d.value);
d.x = d.px = Math.min(intended + 10, Math.max(intended - 10, d.px));
});
node.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; });
});
pozisyon etiketlere kuvvet düzenini kullanan başka
example olduğunu. Burada, x konumu göz ardı edilir (yani sabit) ve sadece y, düzenden etkilenir.
Teşekkürler, Lars! Ben şunu sorabilir miyim: "var amaçlanan = ölçek (d.value)" ile değiştirilecek olması gerekiyor "var xpos = ölçek (d.date)" datetime nerede koymak istediğim değer benim durumumda x-ekseni? – ericmjl
Herhangi bir kod göndermediniz, bu yüzden değişkenlerinizin ne arandığını bilmiyorum, ancak evet, bu x konumunu atayacaktır. –
Teşekkürler Lars! Kodumdaki bazı hataları düzeltdikten sonra test edebildim ve geçici olarak çalışıyor! Şimdi düzgün çalıştığından emin olmak için ölçekleri değiştirmek. :-) Tekrar teşekkürler! – ericmjl
Webcola, D3.JS ile kısıtlamaya dayalı mizanpaj oluşturmak için harika bir araçtır.
Evet, [bu soru] (http://stackoverflow.com/questions/15100060/d3-js-force-directed-layout-constrained-by-a-shape) size vermelidir bazı gör işaretçileri. –