强制群集布局错误d3

时间:2015-07-20 23:52:22

标签: javascript force-layout

我正在尝试使用此示例执行图表:http://bl.ocks.org/mbostock/1747543 我遇到的问题是,当我执行我的html时,会出现一个错误:

  

SyntaxError:期望表达式,得到'。'

我的代码是:

var width = 900,
    height = 500;

var color = d3.scale.category20();

var force = d3.layout.force()
    .gravity(.1)
    .charge(-120)
    .linkDistance(30)
    .size([width, height]);

var svg = d3.select("body").select('#contenedor').select('#contenido').append("svg")
    .attr("width", width)
    .attr("height", height);
d3.json("fisica_noms.json", function(error, graph) {
  if (error) throw error;
var clusters = []
var getColors = function(category){
    var nods = graph.nodes;
    var subs = [];
    var m = {};
    for (var ele in nods){
        for(var categs in ele){
            if (!m[categs] && categs == category){
                m[categs] = true;
                subs.push(categs);
                };
            };
        };
        return subs;
    };

var sameCategory = function(category,subCategory){
    var nods = graph.nodes;
    var subs = [];
    for(var i=0; i<nods.length;i++){
            if(nods[i][category]===subCategory){
                subs.push(nods[i])};
       };
       return subs
       };

var searchClusters = function(){
    var nods = graph.nodes;
    var nCom = getColors('Comunitat').length;

    for(var i=0; i<nCom;i++){
        clusters.push(sameCategory('Comunitat',i));
        clusters[i] = d3.max(clusters[i], function(d) {return d.degree;});
    };
force
      .nodes(graph.nodes)
      .links(graph.links)
      .start();

  var link = svg.selectAll(".link")
      .data(graph.links)
    .enter().append("line")
      .attr("class", "link")
      .style("weight", function(d) { return Math.sqrt(d.value); });
force.linkStrength(function(link){return link.value}) ;
  var node = svg.selectAll(".node")
      .data(graph.nodes)
    .enter().append("circle")
      .attr("class", "node")
      .attr("r", function(d){return d.degree/60})
      .style("fill", function(d) { return color(d.Comunitat); })
      .call(force.drag)
      .on('click',function(d){showInfo(d);});
  node.append("title")
      .text(function(d) { return d.id; }); 



force.on("tick",tick);
   function tick (e) {
    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; });
    console.log(e);
    node.attr("cx", function(d) { return d.x; })
        .attr("cy", function(d) { return d.y; });
        .each(cluster(10 * e.alpha * e.alpha))
  };

    // Move d to be adjacent to the cluster node.
    function cluster(alpha) {
      return function(d) {
        var cluster = clusters[d.Comunitat];
        if (cluster === d) return;
        var x = d.x - cluster.x,
            y = d.y - cluster.y,
            l = Math.sqrt(x * x + y * y),
            r = d.degree/60 + cluster.degree/60;
        if (l != r) {
          l = (l - r) / l * alpha;
          d.x -= x *= l;
          d.y -= y *= l;
          cluster.x += x;
          cluster.y += y;
        }
      };
    }

});

};

控制台说我的错误在这里:

.each(cluster(10 * e.alpha * e.alpha))

0 个答案:

没有答案