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 -+---+---
__init__
Creates a hierarchical clustering.
__plot__
Draws the dendrogram on the given Cairo context or matplotlib Axes.
__str__
Undocumented
format
Formats the dendrogram in a foreign format.
names.setter
Sets the names of the nodes in the dendrogram
summary
Returns the summary of the dendrogram.
merges
Returns the performed merges in matrix format
names
Returns the names of the nodes in the dendrogram
_convert_matrix_to_tuple_repr
Converts the matrix representation of a clustering to a tuple representation.
_traverse_inorder
Conducts an inorder traversal of the merge tree.
_merges
Undocumented
_names
Undocumented
_nitems
Undocumented
_nmerges
Undocumented
igraph.VertexDendrogram Creates a hierarchical clustering.
igraph.VertexDendrogram Draws the dendrogram on the given Cairo context or matplotlib Axes.
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.
Undocumented
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;'
Sets the names of the nodes in the dendrogram
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.
Returns the performed merges in matrix format
Returns the names of the nodes in the dendrogram
Converts the matrix representation of a clustering to a tuple representation.
Conducts an inorder traversal of the merge tree.
The inorder traversal returns the nodes on the last level in the order they should be drawn so that no edges cross each other.
Undocumented
igraph.VertexDendrogram Undocumented
Undocumented
Undocumented