ben kuvvet düzeni kullanarak bir grafik var ekran/tarayıcı boyutuna duyarlı d3.js kuvvet düzeni grafiği yapmak için, ancak sabit bir genişlik w
ve yüksekliğini h
vardır: Bir svg sonuçlanırnasıl
var svg = d3.select("#viz").append("svg")
.attr("id", "playgraph")
.attr("width", w)
.attr("height", h)
var force = d3.layout.force()
.nodes(nodes)
.links(links)
.charge(-1600)
.linkDistance(45)
.size([w, h]);
Ekrandaki veya tarayıcı pencere boyutundaki değişikliklere rağmen ölçeklenmeyen veya azalmayan grafik. Ben tarayıcı penceresi boyutunu ayarlamak zaman hiçbir şey olmuyor olarak
var svg = d3.select("#viz").append("svg")
.attr("id", "playgraph")
.attr("width", w)
.attr("height", h)
.attr("viewBox", "0, 0, 600, 400")
.attr("preserveAspectRatio", "xMidYMid meet");
Maalesef bu işe yaramadı: (yani kendisini otomatik boyutlandırır) o duyarlı hale getirmek için, ben viewBox
ve preserveAspectRatio
özellikleri kullanarak çalıştı. Kuvvet grafiğinin .size([w, h])
'un bununla bir ilgisi olup olmadığını merak ediyorum.
Lütfen güç düzeni grafikleriyle viewBox
ve preserveAspectRatio
özniteliklerinin nasıl kullanılacağı konusunda biraz ışık tutabilirsiniz.
Ayrıca, redraw işlevinizi 'window.onresize' – Wex
'a eklemek isteyebilirsiniz. Bu soru oldukça eskidir, ancak yararlı bulabilenler için, düğümleri sınırlı bir kutuyla sınırlamayı da düşünebilirsiniz. Yeniden boyutlandırıldığında, düğümler ekranda kalır. Örnek: http://bl.ocks.org/mbostock/1129492 – joshfindit