我使用Flowingdata.com的this nice force layout創建網絡圖。d3.js強制佈局在加載後自動縮放/縮放
我圖目前顯示與他們的關係,5和750之間的節點。它適用於一些自定義更改以適應我的需求。但有一件事我無法去工作。我有一個viewBox
與preserveAspectRatio
自動適合它所在的容器。但取決於節點的數量總是有一些節點圍繞邊緣(主要是頂部和底部)被切斷。如果節點非常少,則會在中間顯示它們,周圍有巨大的空間(這是一個很大的容器)。
是否有任何方法可以自動縮放或縮放佈局以自動適應?因此,一個大布局有點縮小,一個小布局放大。我有一個縮放事件設置,所以滾動和平移就像一個魅力。但它可以自動做到這一點,以適應內容?
的d3.js啓動代碼:
vis = d3.select(selection)
.append("svg")
.attr("viewBox", "0 0 " + width + " " + height)
.attr("preserveAspectRatio", "xMidYMid meet")
.attr("pointer-events", "all")
.call(d3.behavior.zoom().scaleExtent([.1, 3])
.on("zoom", redraw)).append('g');
聽起來像是一種很好的開始方式。但是,您是從哪裏獲得縮放對象的?我試過d3.behavior.zoom和d3.event,但第一個沒有scale()方法,後者說不能調用null的方法'scale'。 – DaFrenk 2013-04-26 14:15:55