python-igraph manual

For using igraph from Python

   Home       Trees       Indices       Help   
Package igraph :: Module clustering :: Class Dendrogram
[hide private]

Class Dendrogram

source code

object --+
         |
        Dendrogram
Known Subclasses:

The hierarchical clustering (dendrogram) of some dataset.

A hierarchical clustering means that we know not only the way the elements are separated into groups, but also the exact history of how individual elements were joined into larger subgroups.

This class internally represents the hierarchy by a matrix with n rows and 2 columns -- or more precisely, a list of lists of size 2. This is exactly the same as the original format used by igraph's C core. The ith row of the matrix contains the indices of the two clusters being joined in time step i. The joint group will be represented by the ID n+i, with i starting from one. The ID of the joint group will be referenced in the upcoming steps instead of any of its individual members. So, IDs less than or equal to n (where n is the number of rows in the matrix) mean the original members of the dataset (with ID from 0 to n), while IDs up from n+1 mean joint groups. As an example, take a look at the dendrogram and the internal representation of a given clustering of five nodes:

 0 -+
    |
 1 -+-+
      |
 2 ---+-+        <====>   [[0, 1], [3, 4], [2, 5], [6, 7]]
        |
 3 -+   |
    |   |
 4 -+---+---
Instance Methods [hide private]
 
__init__(self, merges)
Creates a hierarchical clustering.
source code
 
__str__(self)
str(x)
source code
 
format(self, format='newick')
Formats the dendrogram in a foreign format.
source code
 
summary(self, verbosity=0, max_leaf_count=40)
Returns the summary of the dendrogram.
source code
 
__plot__(self, context, bbox, palette, *args, **kwds)
Draws the dendrogram on the given Cairo context
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __subclasshook__

Static Methods [hide private]
 
_convert_matrix_to_tuple_repr(merges, n=None)
Converts the matrix representation of a clustering to a tuple representation.
source code
Properties [hide private]
  merges
Returns the performed merges in matrix format
  names
Returns the names of the nodes in the dendrogram

Inherited from object: __class__

Method Details [hide private]

__init__(self, merges)
(Constructor)

source code 

Creates a hierarchical clustering.

Parameters:
  • merges - the merge history either in matrix or tuple format
Overrides: object.__init__

_convert_matrix_to_tuple_repr(merges, n=None)
Static Method

source code 

Converts the matrix representation of a clustering to a tuple representation.

Parameters:
  • merges - the matrix representation of the clustering
Returns:
the tuple representation of the clustering

__str__(self)
(Informal representation operator)

source code 

str(x)

Overrides: object.__str__
(inherited documentation)

format(self, format='newick')

source code 

Formats the dendrogram in a foreign format.

Currently only the Newick format is supported.

Example:

>>> d = Dendrogram([(2, 3), (0, 1), (4, 5)])
>>> d.format()
'((2,3)4,(0,1)5)6;'
>>> d.names = list("ABCDEFG")
>>> d.format()
'((C,D)E,(A,B)F)G;'

summary(self, verbosity=0, max_leaf_count=40)

source code 

Returns the summary of the dendrogram.

The summary includes the number of leafs and branches, and also an ASCII art representation of the dendrogram unless it is too large.

Parameters:
  • verbosity - determines whether the ASCII representation of the dendrogram should be printed. Zero verbosity prints only the number of leafs and branches.
  • max_leaf_count - the maximal number of leafs to print in the ASCII representation. If the dendrogram has more leafs than this limit, the ASCII representation will not be printed even if the verbosity is larger than or equal to 1.
Returns:
the summary of the dendrogram as a string.

__plot__(self, context, bbox, palette, *args, **kwds)

source code 

Draws the dendrogram on the given Cairo context

Supported keyword arguments are:

  • orientation: the orientation of the dendrogram. Must be one of the following values: left-right, bottom-top, right-left or top-bottom. Individual elements are always placed at the former edge and merges are performed towards the latter edge. Possible aliases: horizontal = left-right, vertical = bottom-top, lr = left-right, rl = right-left, tb = top-bottom, bt = bottom-top. The default is left-right.

Property Details [hide private]

merges

Returns the performed merges in matrix format

Get Method:
unreachable.merges(self) - Returns the performed merges in matrix format

names

Returns the names of the nodes in the dendrogram

Get Method:
unreachable.names(self) - Returns the names of the nodes in the dendrogram
Set Method:
unreachable.names(self, items) - Sets the names of the nodes in the dendrogram

   Home       Trees       Indices       Help