Welcome to yEd Q&A!
Here you can ask questions and receive answers from other members of the community and yEd developers. And you can tell us your most wanted feature requests.


Layout algortihms suited for large imported graphs

0 votes

The answer to question 7089 implies that some layout algorithms are better suited for large graphs. I am looking to customize a large graph layout (which I imported from Excel), but the program keeps freezing when changing layouts. Organic works, but - despite varioous settings - does not give the desired result. 

What are my options?

Which layouts/layout settings should I try or avoid?

Are there other alternatives? Maybe import with a specific layout somehow?

Thank you very much.

- Sergey

in Help by (350 points)

1 Answer

+1 vote
Best answer
Well, if running any layout algorithm other than organic layout takes long enough for you to think yEd freezes, chances are your diagram is too large for all the other algorithms.

How many nodes and edges are there in your diagram?

Aside from organic, hierarchic layout is probably the second best option for large graphs. When running hierarchic on large graphs, you should set "Maximum Duration" to "1" on tab "General" and "Routing Style" to "Polyline" on tab "Edges" of the hierarchic layout settings.

Regarding your question to "import with a specific layout somehow", well, it is possible to import coordinates for each node and then use yEd's properties mapper to assign those coordinates to the imported nodes. However, this approach implies that your Excel data does come with coordinates. That is fairly unlikely - especially for large data sets.
Aside from that, it is also possible to import your Excel data without calculating a layout, save the imported graph as GraphML, open the GraphML in another application that is optimized for arranging large data sets, and let said other application arrange your graph. However, all the application that handle large data sets I know of (Cytoscape and Graphviz) use the organic layout paradigm for arranging those data sets.
by [yWorks] (130k points)
selected by
Wow - thank you for such fast response!

• > 2000 nodes, > 5000 edges.

• Your suggestions worked. I am embarrassed to say - I didn't actually try the hierarchical layout. I kept trying the various orthogonal and edge routing options, wrongly assuming that's what I needed.

• Excellent idea to map imported coordinates! You're right - I don't already have them, but I can work with that (at least to sort them in 1 dimension)!

• I appreciate your recommendations of other applications.

► My last obstacle: how can I combine each node's ports (of course, keeping outgoing ports separate from incoming)? In other words, how can I center all edge anchors while keeping the edges orthogonal? (Also, can this option be made a default when choosing a layout?)
○ [Preferences → Editor tab → Center Edge Anchors] only works for manually creating edges.
○ [Select All Edges → Properties → Ports: change all to 0] works, but skews/slopes the segment attached to that port instead of "sliding" it over. Don't know how to fix it after that.

EDIT: I decided to post a separate question for my obstacle above: https://yed.yworks.com/support/qa/17469/center-edge-anchors-while-maintaining-orthogonality

Thank you very much.
Legal Disclosure | Privacy Policy