Calculating node coordinates for a graph without plot command

Hello,
I'm using a custom plotting routine for a graph, to which I want to provide node coordinates that are calculated for a good representation. I have found a solution by plotting the graph in an invisible plot and extracting the coordinates:
s = [1 1 2 2 3];
t = [2 4 3 4 4];
G = digraph(s,t);
fig = figure('Visible', 'off');
h = gca;
graphPlot = plot(h,G,'layout', 'force','WeightEffect','direct');
allCoordinates(:,1) = graphPlot.XData
allCoordinates(:,2) = graphPlot.YData
close(fig);
However, this is quite inefficient... Is there a way to do this, without using the plotting routine?
Thanks!

 Akzeptierte Antwort

Christine Tobler
Christine Tobler am 2 Aug. 2022

1 Stimme

Unfortunately there isn't a way to get these coordinates without plotting. I have added your request for such a function to our internal tracker for new functionality requests.

Weitere Antworten (0)

Kategorien

Mehr zu Graph and Network Algorithms finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by