fkling / JSNetworkX

Build, process and analyze graphs in JavaScript (port of NetworkX)
https://felix-kling.de/jsnetworkx/
Other
757 stars 185 forks source link

relabelNodes doesn't update the graph #80

Open yananet opened 5 years ago

yananet commented 5 years ago

Hi,

I could draw graph as I expected, and I now want to update the node without deleting the node.

firstly, I want to use relabelNodes, the label of the node changed but not reflected in the graph.

G.nodes()
Array [ old1", "old2" ]
var mapping = {"old1": "new1"};
var H = jsnx.relabelNodes(G, mapping, false)
G.nodes()
Array [ new1", "old2" ]

The label seems to be updated, but the actual label doesn't change, it only changes with following

jsnx.draw(G)

but I don't want to redraw everything, just want to update the single label. It would be very appreciated if someone can correct me.

yananet commented 5 years ago

Just hope this could be helpful. I had to work with d3 for this.

text = d3.selectAll("text").filter(function() {return d3.select(this).text() == "the_label_text"})
text.style("fill", "gray")

something like this.