DENDROGRAM

Given a hierarchical tree cluster, usually created by the CLUSTER_TREE function, the DENDROGRAM procedure constructs a dendrogram and returns a set of vertices and connectivity that can be used to visualize the dendrite plot.

This routine is written in the IDL language. Its source code can be found in the file dendro_plot.pro in the lib subdirectory of the IDL distribution.

Example

; Given a set of points in two-dimensional space.
m = 20
DATA = 7*RANDOMN(-1, 2, m)

; Compute the Euclidean distance between each point.
distance = DISTANCE_MEASURE(data)

; Compute the cluster analysis.
clusters = CLUSTER_TREE(distance, linkdistance, LINKAGE=2)

; Create the dendrogram.
DENDROGRAM, clusters, linkdistance, outverts, outconn, $
   LEAFNODES = LEAFNODES

PRINT, STRTRIM(LEAFNODES, 2)

OPOLY = OBJ_NEW('IDLgrPolyline', outverts, $
   POLYLINES = outconn)
LOC = FLTARR(2, m)
LOC[0, *] = FINDGEN(m)
OTEXT = OBJ_NEW('IDLgrText', STRTRIM(LEAFNODES,2), $
   ALIGNMENT = 1, VERTICAL_ALIGN = 0.5, $
   BASELINE = [0,1,0], UPDIR = [-1,0,0], $
   CHAR_DIM = [1,1], LOCATIONS = loc)
OAXIS = OBJ_NEW('IDLgrAxis', 1, /EXACT, $
   LOCATION = [-1,0,0], RANGE = [0, MAX(linkdistance)])
OAXIS -> GetProperty, TICKTEXT = oTick
OTICK -> SetProperty, CHAR_DIM = [1,1]
OMODEL = OBJ_NEW('IDLgrModel')
OMODEL -> Add, oPoly
OMODEL -> Add, oText
OMODEL -> Add, oAxis
XOBJVIEW, oModel

When this code is run, IDL prints:

4 15 1 2 11 6 9 14 17 0 3 10 16 7 12 8 18 19 5 13

Syntax

DENDROGRAM, Clusters, Linkdistance, Outverts, Outconn [, LEAFNODES=variable]

Arguments

Clusters

A 2-by-(m-1) input array containing the cluster indices, where m is the number of items in the original dataset. This array is usually the result of the CLUSTER_TREE function.

Linkdistance

An (m-1)-element input vector containing the distances between cluster items, as returned by the Linkdistance argument to the CLUSTER_TREE function.

Outverts

Set this argument to a named variable that will contain a 2-dimensional array of floating-point vertices that make up the dendrogram.

Outconn

Set this argument to a named variable that will contain an output array of connectivity values. The Outverts and Outconn arguments can be passed directly to IDLgrPolyline to construct the dendrite plot.

Keywords

LEAFNODES

Set this keyword to a named variable that will return a vector of integers giving the order of leaf nodes within the dendrogram. The LEAFNODES keyword is useful for labeling the nodes in a dendrite plot.

Version History

6.1

Introduced

See Also

CLUSTER_TREE, DISTANCE_MEASURE