Get coordinates of 3-D force-directed graph plot without plotting?

1 visualización (últimos 30 días)
I have a very large weighted undirected graph and I want to run the 3-d force directed graph algorithm without actually creating the figure. The following works for small graphs but is cumbersome for large ones.
% create sample weighted undirected graph objectwith pseudorandom weights
nN = 1e3;% # of nodes
G = graph(squareform(randi(10,[(nN^2-nN)./2 1]))));
% Perform 3-D force-directed algo with graph plotting function
pH = plot(G,'layout','force3','WeightEffect','Direct','Iterations',1e5);
% extract coordinates from plot
xyz = [pH.XData;pH.YData;pH.ZData]';
Is there are way to access lower level functions to apply the same algorithm and obtain the coordinates xyz without plotting anything (ideally more efficiently)? Thank you.

Respuesta aceptada

Christine Tobler
Christine Tobler el 26 de Jul. de 2023
There isn't currently such a function available.
For the example above, nearly all the time is being spent in computing the coordinates, so at least there isn't much time lost in plotting, although I understand that the unnecessary figure can get in the way.

Más respuestas (0)

Categorías

Más información sobre Graph and Network Algorithms en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by