# LabelVerticesAndEdges

VTKExamples/Python/Graphs/LabelVerticesAndEdges

This example sets and displays labels of vertices and edges of a graph.

Other Languages

See (Cxx)

### Code

LabelVerticesAndEdges.py

    #!/usr/bin/env python
    import vtk

    def main():
        colors = vtk.vtkNamedColors()
        g = vtk.vtkMutableUndirectedGraph()

        # Create 3 vertices
        v1 = g.AddVertex()
        v2 = g.AddVertex()
        v3 = g.AddVertex()

        # Create a fully connected graph
        g.AddEdge(v1, v2)
        g.AddEdge(v2, v3)
        g.AddEdge(v1, v3)

        # Create the edge weight array
        weights = vtk.vtkDoubleArray()
        weights.SetNumberOfComponents(1)
        weights.SetName("Weights")

        # Set the edge weights
        weights.InsertNextValue(1.0)
        weights.InsertNextValue(1.0)
        weights.InsertNextValue(2.0)

        # Create an array for the vertex labels
        vertexIDs = vtk.vtkIntArray()
        vertexIDs.SetNumberOfComponents(1)
        vertexIDs.SetName("VertexIDs")

        # Set the vertex labels
        vertexIDs.InsertNextValue(0)
        vertexIDs.InsertNextValue(1)
        vertexIDs.InsertNextValue(2)

        # Add the edge weight array to the graph
        g.GetEdgeData().AddArray(weights)
        g.GetVertexData().AddArray(vertexIDs)

        circularLayoutStrategy = vtk.vtkCircularLayoutStrategy()

        graphLayoutView = vtk.vtkGraphLayoutView()
        graphLayoutView.AddRepresentationFromInput(g)

        graphLayoutView.SetLayoutStrategy(circularLayoutStrategy)
        graphLayoutView.SetVertexLabelVisibility(1)
        graphLayoutView.SetEdgeLabelVisibility(1)
        graphLayoutView.SetEdgeLabelArrayName("Weights") #default is "labels"
        graphLayoutView.SetVertexLabelArrayName("VertexIDs") #default is "labels"
        graphLayoutView.ResetCamera()
        graphLayoutView.Render()
        graphLayoutView.GetInteractor().Start()

    if __name__ == '__main__':
        main()