Ich möchte die Links und Knoten auf den übergeordneten Knoten in einem Diagramm markieren, wenn der Kindknoten schwebt. Ich fand seine Inspiration aus der New York Times 'Paths to the white house':D3 markieren ausgewählten Knoten und seine Links zu Eltern und Vorfahren in einem Force-gerichteten Diagramm
ich die Antwort auf this question mit this Fiddle mit gesehen haben:
var node = svg.selectAll(".node")
.data(graph.nodes)
.enter()
.append("g")
.attr("class", function(d) { return "node " + d.name + " " + d.location; })
.call(force.drag)
.on("mouseover", function(d) {
// if(isConnected(d, o)) {
d3.select(this).select("circle").style("stroke-width", 6);
var nodeNeighbors = graph.links.filter(function(link) {
return link.source.index === d.index || link.target.index === d.index;
})
.map(function(link) {
return link.source.index === d.index ? link.target.index : link.source.index;
});
svg.selectAll('circle').style('stroke', 'gray');
svg.selectAll('circle').filter(function(node) {
return nodeNeighbors.indexOf(node.index) > -1;
})
// }
.on("mouseover", function(d) {
// I would like to insert an if statement to do all of
// these things to the connected nodes
// if(isConnected(d, o)) {
d3.select(this).select("circle").style("stroke-width", 6);
d3.select(this).select("circle").style("stroke", "orange");
// }
})
.on("mouseout", function(d) {
// if(isConnected(d, o)) {
d3.select(this).select("circle").style("stroke-width", 1.5);
d3.select(this).select("circle").style("stroke", "gray");
// }
});
Obwohl sie verwenden Quelle und Ziel, frage ich mich, wenn es auch möglich, und wie wäre es, mit einem Netzwerkdiagramm (Force-directed Graph) mit Eltern und Kindern?