from vtk import *

reader = vtkXGMLReader()
#reader.SetFileName("small.gml")
reader.SetFileName("tiny-with-labels.gml")
reader.Update()

strategy = vtkTreeLayoutStrategy()
#strategy.DepthFirstSpanningTreeOn()
#strategy = vtkSimple2DLayoutStrategy()
#strategy = vtkForceDirectedLayoutStrategy()

view = vtkGraphLayoutView()
view.AddRepresentationFromInputConnection(reader.GetOutputPort())
graph = reader.GetOutput() # vtkUndirectedGraph
print vtkStringArray.SafeDownCast(graph.GetVertexData().GetAbstractArray(0)).GetValue(0)
view.SetVertexLabelArrayName("label")
view.SetVertexLabelVisibility(True)
view.SetVertexColorArrayName("vertex id")
view.SetColorVertices(True)
view.SetLayoutStrategy( strategy )
view.SetInteractionModeTo3D() # Left mouse button causes 3D rotate instead of zoom

theme = vtkViewTheme.CreateMellowTheme()
theme.SetCellColor(.2,.2,.6)
theme.SetLineWidth(2)
theme.SetPointSize(8)
view.ApplyViewTheme(theme)
theme.FastDelete()

view.GetRenderWindow().SetSize(600, 600)
view.ResetCamera()
mycamera = view.GetRenderer().GetActiveCamera()
mycamera.Elevation(20)
view.Render()
 
while not view.IsLayoutComplete():
    view.UpdateLayout()
    view.Render()

   
view.GetInteractor().Start()

 

