# Class Hierarchy

- `collections.abc.MutableMapping`
  - `igraph.utils.multidict` - A dictionary-like object that is customized to deal with multiple values for the same key.
- `enum.Enum`
  - `igraph.drawing.text.TextAlignment` - Text alignment constants.
- `igraph._igraph.EdgeSeq` - Low-level representation of an edge sequence.
  - `igraph.EdgeSeq` - Class representing a sequence of edges in the graph.
- `igraph._igraph.VertexSeq` - Low-level representation of a vertex sequence.
  - `igraph.VertexSeq` - Class representing a sequence of vertices in the graph.
- `igraph.app.shell.ConsoleProgressBarMixin` - Mixin class for console shells that support a progress bar.
  - `igraph.app.shell.ClassicPythonShell` - Classic Python shell interface.
  - `igraph.app.shell.IPythonShell` - IPython embedded shell interface.
- `igraph.app.shell.ProgressBar` - A 2-line progress bar.
- `igraph.app.shell.Shell` - Superclass of the embeddable shells supported by igraph
  - `igraph.app.shell.ClassicPythonShell` - Classic Python shell interface.
  - `igraph.app.shell.IDLEShell` - IDLE embedded shell interface.
  - `igraph.app.shell.IPythonShell` - IPython embedded shell interface.
- `igraph.app.shell.TerminalController` - A class that can be used to portably generate formatted output to a terminal.
- `igraph.ARPACKOptions` - Class representing the parameters of the ARPACK module.
- `igraph.BFSIter` - igraph BFS iterator object
- `igraph.Clustering` - Class representing a clustering of an arbitrary ordered set.
  - `igraph.VertexClustering` - The clustering of the vertex set of a graph.
    - `igraph.Cut` - A cut of a given graph.
      - `igraph.Flow` - A flow of a given graph.
- `igraph.Configuration` - Class representing igraph configuration details.
- `igraph.Configuration.Types` - Static class for the implementation of custom getter/setter functions for configuration keys
- `igraph.Cover` - Class representing a cover of an arbitrary ordered set.
  - `igraph.VertexCover` - The cover of the vertex set of a graph.
    - `igraph.CohesiveBlocks` - The cohesive block structure of a graph.
- `igraph.datatypes.Matrix` - Simple matrix data type.
- `igraph.Dendrogram` - The hierarchical clustering (dendrogram) of some dataset.
  - `igraph.VertexDendrogram` - The dendrogram resulting from the hierarchical clustering of the vertex set of a graph.
- `igraph.DFSIter` - igraph DFS iterator object
- `igraph.drawing.baseclasses.AbstractDrawer` - Abstract class that serves as a base class for anything that draws an igraph object.
  - `igraph.drawing.baseclasses.AbstractGraphDrawer` - Abstract class that serves as a base class for anything that draws an igraph.Graph.
    - `igraph.drawing.cairo.graph.AbstractCairoGraphDrawer` - Abstract base class for graph drawers that draw on a Cairo canvas.
      - `igraph.drawing.cairo.graph.CairoGraphDrawer` - Class implementing the default visualisation of a graph.
    - `igraph.drawing.graph.CytoscapeGraphDrawer` - Graph drawer that sends/receives graphs to/from Cytoscape using CytoscapeRPC.
    - `igraph.drawing.graph.GephiGraphStreamingDrawer` - Graph drawer that sends a graph to a file-like object (e.g., socket, URL connection, file) using the Gephi graph streaming format.
    - `igraph.drawing.matplotlib.graph.GraphArtist` - Artist for an igraph.Graph object.
    - `igraph.drawing.matplotlib.graph.MatplotlibGraphDrawer` - Graph drawer that uses a pyplot.Axes as context
    - `igraph.drawing.plotly.graph.PlotlyGraphDrawer` - Graph drawer that uses a pyplot.Axes as context
  - `igraph.drawing.baseclasses.AbstractVertexDrawer` - Abstract vertex drawer object from which all concrete vertex drawer implementations are derived.
    - `igraph.drawing.cairo.vertex.AbstractCairoVertexDrawer` - Abstract base class for vertex drawers that draw on a Cairo canvas.
      - `igraph.drawing.cairo.vertex.CairoVertexDrawer` - The default vertex drawer implementation of igraph.
    - `igraph.drawing.matplotlib.vertex.MatplotlibVertexDrawer` - Matplotlib backend-specific vertex drawer.
    - `igraph.drawing.plotly.vertex.PlotlyVerticesDrawer` - Plotly backend-specific vertex drawer.
  - `igraph.drawing.baseclasses.AbstractXMLRPCDrawer` - Abstract drawer that uses a remote service via XML-RPC to draw something on a remote display.
    - `igraph.drawing.graph.CytoscapeGraphDrawer` - Graph drawer that sends/receives graphs to/from Cytoscape using CytoscapeRPC.
  - `igraph.drawing.cairo.base.AbstractCairoDrawer` - Abstract class that serves as a base class for anything that draws on a Cairo context within a given bounding box.
    - `igraph.drawing.cairo.coord.CoordinateSystem` - Class implementing a coordinate system object.
      - `igraph.drawing.cairo.coord.DescartesCoordinateSystem` - Class implementing a 2D Descartes coordinate system object.
    - `igraph.drawing.cairo.dendrogram.CairoDendrogramDrawer` - Default Cairo drawer object for dendrograms.
    - `igraph.drawing.cairo.graph.AbstractCairoGraphDrawer` - Abstract base class for graph drawers that draw on a Cairo canvas.
      - `igraph.drawing.cairo.graph.CairoGraphDrawer` - Class implementing the default visualisation of a graph.
    - `igraph.drawing.cairo.histogram.CairoHistogramDrawer` - Default Cairo drawer object for histograms
    - `igraph.drawing.cairo.matrix.CairoMatrixDrawer` - Default Cairo drawer object for matrices.
    - `igraph.drawing.cairo.palette.CairoPaletteDrawer` - Default Cairo drawer object for palettes
    - `igraph.drawing.cairo.polygon.CairoPolygonDrawer` - Class that is used to draw polygons in Cairo.
    - `igraph.drawing.cairo.text.CairoTextDrawer` - Class that draws text on a Cairo context.
    - `igraph.drawing.cairo.vertex.AbstractCairoVertexDrawer` - Abstract base class for vertex drawers that draw on a Cairo canvas.
      - `igraph.drawing.cairo.vertex.CairoVertexDrawer` - The default vertex drawer implementation of igraph.
  - `igraph.drawing.matplotlib.dendrogram.MatplotlibDendrogramDrawer` - Matplotlib drawer object for dendrograms.
  - `igraph.drawing.matplotlib.histogram.MatplotlibHistogramDrawer` - Matplotlib drawer object for matrices.
  - `igraph.drawing.matplotlib.matrix.MatplotlibMatrixDrawer` - Matplotlib drawer object for matrices.
  - `igraph.drawing.matplotlib.palette.MatplotlibPaletteDrawer` - Matplotlib drawer object for matrices.
- `igraph.drawing.baseclasses.AbstractEdgeDrawer` - Abstract edge drawer object from which all concrete edge drawer implementations are derived.
  - `igraph.drawing.cairo.edge.AbstractCairoEdgeDrawer` - Cairo-specific abstract edge drawer object.
    - `igraph.drawing.cairo.edge.AlphaVaryingEdgeDrawer` - Edge drawer implementation that draws undirected edges as straight lines and directed edges by varying the alpha value of the specified edge color between the source and the destination.
      - `igraph.drawing.cairo.edge.DarkToLightEdgeDrawer` - Edge drawer implementation that draws undirected edges as straight lines and directed edges by using an alpha value of one (full opacity) at the source and an alpha value of zero (total transparency) at the destination...
      - `igraph.drawing.cairo.edge.LightToDarkEdgeDrawer` - Edge drawer implementation that draws undirected edges as straight lines and directed edges by using an alpha value of zero (total transparency) at the source and an alpha value of one (full opacity) at the destination...
    - `igraph.drawing.cairo.edge.CairoArrowEdgeDrawer` - Edge drawer implementation that draws undirected edges as straight lines and directed edges as arrows.
    - `igraph.drawing.cairo.edge.TaperedEdgeDrawer` - Edge drawer implementation that draws undirected edges as straight lines and directed edges as tapered lines that are wider at the source and narrow at the destination.
  - `igraph.drawing.matplotlib.edge.MatplotlibEdgeDrawer` - Matplotlib-specific abstract edge drawer object.
  - `igraph.drawing.plotly.edge.PlotlyEdgeDrawer` - Matplotlib-specific abstract edge drawer object.
- `igraph.drawing.cairo.plot.CairoPlot` - Class representing an arbitrary plot that uses the Cairo plotting backend.
- `igraph.drawing.colors.Palette` - Base class of color palettes.
  - `igraph.drawing.colors.AdvancedGradientPalette` - Advanced gradient that consists of more than two base colors.
  - `igraph.drawing.colors.GradientPalette` - Base class for gradient palettes
  - `igraph.drawing.colors.PrecalculatedPalette` - A palette that returns colors from a pre-calculated list of colors
    - `igraph.drawing.colors.ClusterColoringPalette` - A palette suitable for coloring vertices when plotting a clustering.
  - `igraph.drawing.colors.RainbowPalette` - A palette that varies the hue of the colors along a scale.
- `igraph.drawing.DrawerDirectory` - Static class that finds the object/backend drawer
- `igraph.drawing.matplotlib.edge.mpl.collections.PatchCollection`
  - `igraph.drawing.matplotlib.edge.EdgeCollection` - No class docstring; 0/1 property, 0/7 instance variable, 8/15 methods, 1/2 static method documented
- `igraph.drawing.matplotlib.graph.mpl.artist.Artist`
  - `igraph.drawing.matplotlib.graph.GraphArtist` - Artist for an igraph.Graph object.
- `igraph.drawing.matplotlib.polygon.mpl.collections.PathCollection`
  - `igraph.drawing.matplotlib.polygon.HullCollection` - Collection for hulls connecting vertex covers/clusters.
- `igraph.drawing.matplotlib.vertex.mpl.collections.PatchCollection`
  - `igraph.drawing.matplotlib.vertex.VertexCollection` - Collection of vertex patches for plotting.
- `igraph.drawing.metamagic.AttributeSpecification` - Class that describes how the value of a given attribute should be retrieved.
- `igraph.drawing.plotly.polygon.PlotlyPolygonDrawer` - Class that is used to draw polygons in matplotlib.
- `igraph.drawing.shapes.ShapeDrawer` - Static class, the ancestor of all vertex shape drawer classes.
  - `igraph.drawing.shapes.CircleDrawer` - Static class which draws circular vertices
  - `igraph.drawing.shapes.DiamondDrawer` - Static class which draws diamonds (i.e. rhombuses)
  - `igraph.drawing.shapes.DownTriangleDrawer` - Static class which draws triangles pointing down
  - `igraph.drawing.shapes.NullDrawer` - Static drawer class which draws nothing.
  - `igraph.drawing.shapes.RectangleDrawer` - Static class which draws rectangular vertices
  - `igraph.drawing.shapes.UpTriangleDrawer` - Static class which draws upright triangles
- `igraph.drawing.shapes.ShapeDrawerDirectory` - Static class that resolves shape names to their corresponding shape drawer classes.
- `igraph.drawing.utils.FakeModule` - Fake module that raises an exception for everything
- `igraph.drawing.utils.Rectangle` - Class representing a rectangle.
  - `igraph.drawing.utils.BoundingBox` - Class representing a bounding box (a rectangular area) that encloses some objects.
- `igraph.Edge` - Class representing a single edge in a graph.
- `igraph.GraphBase` - Low-level representation of a graph.
  - `igraph.Graph` - Generic graph.
- `igraph.InternalError` - Undocumented
- `igraph.layout.Layout` - Represents the layout of a graph.
- `igraph.Matching` - A matching of vertices in a graph.
- `igraph.remote.gephi.GephiConnection` - Object that represents a connection to a Gephi master server.
- `igraph.remote.gephi.GephiGraphStreamer` - Class that produces JSON event objects that stream an igraph graph to Gephi using the Gephi Graph Streaming API.
- `igraph.remote.gephi.GephiGraphStreamingAPIFormat` - Object that implements the Gephi graph streaming API format and returns Python objects corresponding to the events defined in the API.
- `igraph.statistics.FittedPowerLaw` - Result of fitting a power-law to a vector of samples
- `igraph.statistics.Histogram` - Generic histogram class for real numbers
- `igraph.statistics.RunningMean` - Running mean calculator.
- `igraph.summary.FakeWrapper` - Object whose interface is compatible with `textwrap.TextWrapper` but does no wrapping.
- `igraph.summary.GraphSummary` - Summary representation of a graph.
- `igraph.UniqueIdGenerator` - A dictionary-like class that can be used to assign unique IDs to names (say, vertex names).
- `igraph.Vertex` - Class representing a single vertex in a graph.
- `NamedTuple('_Point', [('x', float), ('y', float)])`
  - `igraph.drawing.utils.Point` - Class representing a point on the 2D plane.
- `object`
  - `igraph.drawing.metamagic.AttributeCollectorBase` - Base class for attribute collector subclasses. Classes that inherit this class may use a declarative syntax to specify which vertex or edge attributes they intend to collect. See `AttributeCollectorMeta`...
- `tuple`
  - `igraph.DyadCensus` - Dyad census of a graph.
  - `igraph.TriadCensus` - Triad census of a graph.
- `type`
  - `igraph.drawing.metamagic.AttributeCollectorMeta` - Metaclass for attribute collector classes