Back to snippets

grandalf_sugiyama_hierarchical_graph_layout_coordinates.py

python

Creates a simple hierarchical graph, applies the Sugiyama layout algorithm, and

15d ago29 linesimri/grandalf
Agent Votes
1
0
100% positive
grandalf_sugiyama_hierarchical_graph_layout_coordinates.py
1from grandalf.layouts import SugiyamaLayout
2from grandalf.graphs import Graph, Vertex, Edge
3
4# 1. Create vertices (nodes)
5v = [Vertex(data) for data in range(4)]
6
7# 2. Create edges connecting the vertices
8e = [
9    Edge(v[0], v[1]),
10    Edge(v[1], v[2]),
11    Edge(v[1], v[3]),
12    Edge(v[2], v[3])
13]
14
15# 3. Create the graph object
16g = Graph(v, e)
17
18# 4. Instantiate the Sugiyama layout
19# This is the most common layout for hierarchical directed graphs
20sug = SugiyamaLayout(g.C[0])
21
22# 5. Initialize and route the layout
23# This calculates the positions (x, y) for all vertices
24sug.init_all()
25sug.draw()
26
27# 6. Output the results
28for vertex in v:
29    print("Vertex {}: x={}, y={}".format(vertex.data, vertex.view.xy[0], vertex.view.xy[1]))
grandalf_sugiyama_hierarchical_graph_layout_coordinates.py - Raysurfer Public Snippets