Calculating node coordinates for a graph without plot command
2 views (last 30 days)
Mannes Dreef on 15 Jul 2022
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
However, this is quite inefficient... Is there a way to do this, without using the plotting routine?
Christine Tobler on 2 Aug 2022
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.