MATLAB: Modify Nodes and Edges of GraphPlot

graphgraph theorygraphplotMATLABmodify dataplot

Hi. I would like to animate a graphplot. Nodes and edges should be added and removed over time, and the coordinates should be modified. Is there a way of modifying the graphplot without replotting (which I've noticed takes a lot of time)? Thanks.

Best Answer

I'm afraid that's not possible with GraphPlot.
For performance, you could use scatter to plot all the nodes, and plot to plot all edges connecting these nodes as straight lines, this would be much more efficient - of course it loses some of the additional features, like placement of the nodes in an automatic graph plot.
Or maybe you could safe the plot of each timestep ahead of time and then play the animation based on this precomputed set?
In GraphPlot, in terms of node placement, if you don't already know the coordinates at which the nodes should be placed in each timestep, you could try feeding the coordinates of the last timestep to the 'XStart', 'YStart' options for the 'force' layout, which would make the nodes in the next step be in a more similar place to the previous one. Changing 'Iterations' to a smaller number could also be helpful there.