2013-10-03 41 views
2

我使用R包d3Network生成D3.js強制佈局圖。 d3Network產生的代碼給了我一個「Uncaught TypeError:無法讀取未定義」錯誤的屬性「權重」。有誰知道可能是什麼原因造成的?JavaScript錯誤「Uncaught TypeError:無法調用未定義的方法」推「'D3.js

我使用的例子在(但具有不同的數據集):

http://bl.ocks.org/mbostock/4062045

http://christophergandrud.github.io/d3Network/(d3ForceDirected部)

該構建圖中的代碼是:

var force = d3.layout.force() 
.nodes(d3.values(nodes)) 
.links(links) 
.size([width, height]) 
.linkDistance(50) 
.charge(-120) 
.on("tick", tick) 
.start(); 

鏈接:

var link = svg.selectAll(".link") 
.data(force.links()) 
.enter().append("line") 
.attr("class", "link") 
.style("stroke-width", function(d) { return Math.sqrt(d.value); }); 

的數據是:

var links = [ { "source" : 1, "target" : 11, "value" : 2,}, 
      { "source" : 1, "target" : 21, "value" : 2 }, 
      { "source" : 1, "target" : 20, "value" : 1 }, 
      { "source" : 1, "target" : 19, "value" : 2 }, 
      { "source" : 2, "target" : 16, "value" : 1 }, 
      { "source" : 2, "target" : 14, "value" : 1 }, 
      { "source" : 2, "target" : 13, "value" : 1 }, 
      { "source" : 2, "target" : 15, "value" : 1 }, 
      { "source" : 2, "target" : 18, "value" : 1 }, 
      { "source" : 3, "target" : 14, "value" : 1 }, 
      { "source" : 3, "target" : 17, "value" : 1 }, 
      { "source" : 3, "target" : 21, "value" : 1 }, 
      { "source" : 3, "target" : 19, "value" : 1 }, 
      { "source" : 5, "target" : 13, "value" : 1 }, 
      { "source" : 5, "target" : 12, "value" : 1 }, 
      { "source" : 5, "target" : 10, "value" : 1 }, 
      { "source" : 5, "target" : 19, "value" : 1 }, 
      { "source" : 5, "target" : 22, "value" : 1 }, 
      { "source" : 6, "target" : 21, "value" : 1 }, 
      { "source" : 6, "target" : 20, "value" : 1 }, 
      { "source" : 7, "target" : 11, "value" : 1 }, 
      { "source" : 7, "target" : 19, "value" : 1 }, 
      { "source" : 8, "target" : 15, "value" : 1 }, 
      { "source" : 9, "target" : 17, "value" : 1 }, 
      { "source" : 9, "target" : 22, "value" : 1 } ] ; 
var nodes = [{ "name" : "c6_Sports", "group" : 1 }, 
      { "name" : "c8_Talk", "group" : 1 }, 
      { "name" : "c10_TV", "group" : 1 }, 
      { "name" : "c3_Movies", "group" : 1 }, 
      { "name" : "c9_Together", "group" : 1 }, 
      { "name" : "c2_Games", "group" : 1 }, 
      { "name" : "c1_ConsoleGames", "group" : 1 }, 
      { "name" : "c5_Outside", "group" : 1 }, 
      { "name" : "c4_Music", "group" : 1 }, 
      { "name" : "Joe", "group" : 1 }, 
      { "name" : "Fiona", "group" : 1 }, 
      { "name" : "Jill", "group" : 1 }, 
      { "name" : "Bob", "group" : 1 }, 
      { "name" : "Bertha", "group" : 1 }, 
      { "name" : "Jimmy", "group" : 1 }, 
      { "name" : "Amanda", "group" : 1 }, 
      { "name" : "Dmitry", "group" : 1 }, 
      { "name" : "Scott", "group" : 1 }, 
      { "name" : "Patricia", "group" : 1 }, 
      { "name" : "Mike", "group" : 1 }, 
      { "name" : "Lois", "group" : 1 }, 
      { "name" : "Tim", "group" : 1 } ] ; 
+0

看起來在某處存在錯誤的錯誤。 「links」中的「source」和「target」中的數字應該從0開始。 –

+0

@LarsKotthoff,謝謝。這很可能是因爲R從1開始計數,世界上其他所有事物都以0開始計數。我也會檢查這個。 – RedRaven

+0

我使用我的Force Directed Graph模板複製了您的數據。 http://vida.io/documents/QG8LdCQEJesi2scQC。數據是好的。這可能是tick()函數中的一個問題。檢查line.attr(「d」,...)計算。 –

回答

6

給定爲「源」和「目標」 links是索引到nodes陣列和應該從0開始此致的從1開始,因此最高數目沒有按」存在並給你這個錯誤。

相關問題