force-layout

    3熱度

    1回答

    我正在玩D3力佈局。在強制佈局中,您必須給出「鏈接」和「節點」才能製作強制圖。 D3將鏈接的「源」和「目標」解釋爲「節點」數組中節點的索引。我的問題是:如何通過其在「節點」屬性中的ID而不是索引在「節點」數組中的索引數據? 這裏是我的JSON文件: { "nodes": [ {"name": "A", "ID": 10}, {"name": "B", "

    2熱度

    1回答

    從this example開始(可能不是最佳選擇),我着手嘗試開發一個適合我的目的的應用程序,並在此過程中學習d3.js。經過很多天真的修補,我設法得到了一個toy force layout爲我的測試數據,滿足了我的外觀和行爲。現在我已經開始嘗試在我的特定示例的上下文中理解MB的General Update Pattern,以便用戶可以交互式修改圖形。我顯然還沒有理解這個原則。 從小開始,我想創建

    0熱度

    1回答

    我的問題如下:雖然我爲我的節點設置了fixed : true,但只有第一個(從json文件加載)被修復。新的(由用戶創建的)不是固定的,即使使用瀏覽器的開發者工具,我們也可以看到fixed="true"屬性。 redraw()函數中缺少一些東西嗎?我應該使用tick()嗎?我在這個問題上奮鬥了一個星期,我不知道了。 這是我的整個代碼(其中初始節點確實是固定的),但我也提出了一個jsfiddle(其

    3熱度

    2回答

    我有一個d3強制指導佈局,數據的結構如下。是否可以對其應用可摺疊力佈局(如http://bl.ocks.org/mbostock/1062288)?我希望節點在點擊時摺疊/展開。 { "nodes": [ {"x": 469, "y": 410}, {"x": 493, "y": 364}, {"x": 442, "y": 365}, {"x":

    2熱度

    1回答

    多重焦點力量的真正魔力在這裏完成; function tick(e) { var k = .1 * e.alpha; // Push nodes toward their designated focus. nodes.forEach(function(o, i) { o.y += (foci[o.id].y - o.y) * k; o.x

    1熱度

    1回答

    我試圖整合D3力佈局http://nylen.tv/d3-process-map/graph.php這是https://github.com/nylen/d3-process-map現場版是在http://rumi.io.knowledge.tree.8d4ef892b35606a87ba5cc39a1f99f68df97.s3-website-ap-southeast-1.amazonaws.c

    0熱度

    1回答

    D3.js力佈局中的節點大小參數是什麼? 它是屏幕上的像素區域,半徑還是完全不同的東西? 最後,如何從該尺寸值計算半徑? 編輯:我一直困惑的一個D3例如,它曾經爲nodes對象size變量,我認爲這個變量是在動力佈局類似source和target參數一起使用。事實並非如此。因此,這個問題沒有意義。

    0熱度

    1回答

    是否可以更改D3中被視爲「鏈接」的內容?我從服務器接收的JSON被設置爲「節點」和「邊緣」而不是「節點」和「鏈接」。下面是一個簡單的JSON: { "nodes": [ {"fixed":true,"data": {"id": "foo","idType":"USERNAME","color":"red"},"selected":false}, {"fixed":true,"data": {

    1熱度

    1回答

    當我想要顯示多個網絡可視化圖時,我有一些使用d3.js可視化網絡庫的問題。 由於我繪製了一個新圖,只有最後一個圖的作用力佈局正在工作,我無法找出事情出錯的地方。 這裏是的jsfiddle: https://jsfiddle.net/7mn0qy5b/2/ 這裏是我的源: HTML <div id="graph1"></div> <div id="graph2"></div> CSS #gra

    0熱度

    2回答

    我有一個響應性的定向力圖,它工作的很好,除了我不能讓它留在瀏覽器屏幕內。 D3的代碼提示創建邊界框: node.attr("cx", function(d) { return d.x = Math.max(r, Math.min(width - r, d.x)); }) .attr("cy", function(d) { return d.y = Math.max(r, Math.min(heig