D3-force-layout: Wie kann ich die Größe von jedem Knoten?

Ich bin mit dem erstaunlichen D3JS zu bauen, graph. Die Grafik ist gerendert, aber ich möchte, dass meine Knoten haben jeweils eine Größe.

Werden die Daten in dieser form :

{Quelle: "Antony Hoppkins", target: "Woody Allen", Wert: 3}

Hier der code :

var links = graph.links;
var nodes = {};

links.forEach(function(link) {
  link.source = nodes[link.source] || (nodes[link.source] = {name: link.source});
  link.target = nodes[link.target] || (nodes[link.target] = {name: link.target});
});

var width = 1200,
    height = 1500;

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

var svg = d3.select("#network").append("svg")
    .attr("width", width)
    .attr("height", height);

var link = svg.selectAll(".link")
    .data(force.links())
  .enter().append("line")
    .attr("class", "link");

var node = svg.selectAll(".node")
    .data(force.nodes())
  .enter().append("g")
    .attr("class", "node")
    .style("stroke-width", function(d) { return (d.value)*5; })
    .on("mouseover", mouseover)
    .on("mouseout", mouseout)
    .call(force.drag);

node.append("circle")
    .attr("r", 5);

node.append("text")
    .attr("x", 12)
    .attr("dy", ".35em")
    .text(function(d) { return d.name; });

function tick() {
  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("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });
}

function mouseover() {
  d3.select(this).select("circle").transition()
      .duration(750)
      .attr("r", 10)
      ;
}

function mouseout() {
  d3.select(this).select("circle").transition()
      .duration(750)
      .attr("r", 5)
      ;
}

Irgendwelche Gedanken ?

InformationsquelleAutor occulti | 2013-12-21
Schreibe einen Kommentar