This demo uses pointerover
and pointerout
events on force-directed series' nodes, to automatically highlight all links going out of it. It makes use of an array of links contained in node's data item's links
setting to automatically apply or remove "active"
state.
Code
series.links.template.setAll({ strokeWidth: 1, strokeOpacity: 0.5 }); series.links.template.states.create("active", { strokeWidth: 3, strokeOpacity: 1 }); series.nodes.template.events.on("pointerover", function(ev) { am5.array.each(ev.target.dataItem.get("links"), function(link) { link.set("active", true); }); }); series.nodes.template.events.on("pointerout", function(ev) { am5.array.each(ev.target.dataItem.get("links"), function(link) { link.set("active", false); }); });
series.links.template.setAll({ strokeWidth: 1, strokeOpacity: 0.5 }); series.links.template.states.create("active", { strokeWidth: 3, strokeOpacity: 1 }); series.nodes.template.events.on("pointerover", function(ev) { am5.array.each(ev.target.dataItem.get("links"), function(link) { link.set("active", true); }); }); series.nodes.template.events.on("pointerout", function(ev) { am5.array.each(ev.target.dataItem.get("links"), function(link) { link.set("active", false); }); });
Demo
See the Pen Force-directed chart with cross-linked nodes by amCharts team (@amcharts) on CodePen.