2016-07-22 5 views
0

私はd3.jsで初心者です。これを再作成しようとしています:https://bl.ocks.org/mbostock/4062045とhtmlファイルのノードとリンクのデータ。 35キャッチされない例外TypeError::。私は、エラーindex.htmlを取得しかしd3.jsでキャッチされていないタイプのエラー

var svg = d3.select("svg"), 
     width = +svg.attr("width"), 
     height = +svg.attr("height"); 

    var color = d3.scaleOrdinal(d3.schemeCategory20); 

    var simulation = d3.forceSimulation() 
     .force("link", d3.forceLink().id(function(d) { return d.id; })) 
     .force("charge", d3.forceManyBody()) 
     .force("center", d3.forceCenter(width/2, height/2)); 

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

    var node = svg.append("svg:g") 
     .attr("class", "nodes") 
     .selectAll("circle") 
     .data(nodes) 
     .enter().append("circle") 
     .attr("r", 5) 
     .attr("fill", function(d) { return color(d.group); }) 
     .call(d3.drag() 
      .on("start", dragstarted) 
      .on("drag", dragged) 
      .on("end", dragended)); 

    node.append("title") 
     .text(function(d) { return d.id; }); 

    simulation 
     .nodes(nodes) 
     .on("tick", ticked); 

    simulation.force("link") 
     .links(links); 

    function ticked() { 
     link 
      .attr("x1", function(d) { return d.source.x; }) 
      .attr("y1", function(d) { return d.source.y; }) 
      .attr("x2", function(d) { return d.target.x; }) 
      .attr("y2", function(d) { return d.target.y; }); 

     node 
      .attr("cx", function(d) { return d.x; }) 
      .attr("cy", function(d) { return d.y; }); 
    } 

    function dragstarted(d) { 
    if (!d3.event.active) simulation.alphaTarget(0.3).restart(); 
    d.fx = d.x; 
    d.fy = d.y; 
    } 

    function dragged(d) { 
    d.fx = d3.event.x; 
    d.fy = d3.event.y; 
    } 

    function dragended(d) { 
    if (!d3.event.active) simulation.alphaTarget(0); 
    d.fx = null; 
    d.fy = null; 
    } 

:私はこれまでのところ、これを持っている。svg.append(...)ATTR(...を)のSelectAll(...)のデータ。 (...)。enterは関数ではありません。どうしてこれなの?そんなに

おかげで

+0

D3 v4を参照していますか? –

+0

はい、私のスクリプトの上にがあります –

答えて

1

私はここであなたのためにそれを再作成している:1になりためhttps://jsfiddle.net/wpc3y1jd/

基本的には、いくつかのものは、あなたがD3のV4は、2)の前に、あなたのSVGを定義していることを確認してください)に注意します

<svg width="500" height="500"></svg>

、最終的にあなたがreferenれていることを確認しますあなたのコードの先頭にこれらを引いているので、あなたは、のようなものを、あなたのコードでそれを使用して、幅と高さを設定してくださいコード全体で正しくnodeslinksと表示されます。

+0

ありがとうございます!!!!!! –

関連する問題