Настройка силового направленного графа D3

Уважаемым читателям. Я новичок в javascript, и я столкнулся с этой проблемой. Я пытаюсь реализовать модифицированную версию этого силового ориентированного графа:

http://mbostock.github.com/d3/ex/force.html

Данные json генерируются на лету из php-скрипта. Идея состоит в том, чтобы покрасить все линии, соединяющиеся с одним конкретным узлом (, определенным в php-скрипте ), одним цветом, а все остальные — оттенками серого. Я пытаюсь сделать это, сопоставив исходную переменную в json-файле с переменной из php-скрипта и изменив цвет, когда это верно, как здесь :

  var link = svg.selectAll("line.link")
 .data(json.links)
 .enter().append("line")
 .attr("class", "link")
 .style("stroke-width", function(d) { return Math.sqrt(d.value);})
 .style("stroke-opacity", function(d) { return d.value/10;})
 .style("stroke", function(d) { 
  x = (tested == d.source) ?  return '#1f77b4' : '#707070';// <-- Attempt to change the color of the link when this is true.
  })

, однако это не работает. Сценарий работает нормально, но без изменения цвета, если я просто сделаю это

  var link = svg.selectAll("line.link")
 .data(json.links)
 .enter().append("line")
 .attr("class", "link")
 .style("stroke-width", function(d) { return Math.sqrt(d.value);})
 .style("stroke-opacity", function(d) { return d.value/10;})
 .style("stroke", function(d) { 
  return '#707070';
  })

Я смотрел на это несколько дней, пытаясь понять, как это сделать, и я застрял. Любая помощь будет принята с благодарностью!

Вот мой полный скрипт


5
задан VividD 1 February 2014 в 18:38
поделиться