R: Extract cluster data from a model into a list of data frames.

dendro_data {ggdendro} | R Documentation

## Extract cluster data from a model into a list of data frames.

### Description

This function provides a generic mechanism to extract relevant plotting data, typically line segments and labels, from a variety of cluster models.

Extract line segment and label data from `dendrogram` or `hclust` object. The resulting object is a list of data frames containing line segment data and label data.

### Usage

    dendro_data(model, ...)

    ## Default S3 method:
    dendro_data(model, ...)

    ## S3 method for class 'dendrogram'
    dendro_data(model, type = c("rectangle", "triangle"),
      ...)

    ## S3 method for class 'hclust'
    dendro_data(model, type = c("rectangle", "triangle"), ...)

    ## S3 method for class 'twins'
    dendro_data(model, type = c("rectangle", "triangle"), ...)

### Arguments

`model` | object of type `hclust`, `dendrogram` or `tree`
`...` | ignored
`type` | The type of plot, indicating the shape of the dendrogram. "rectangle" will draw rectangular lines, while "triangle" will draw triangular lines.

### Details

For `dendrogram` and `tree` models, extracts line segment data and labels.

### Value

a list of data frames that contain the data appropriate to each cluster model

A list with components:

`segments` | Line segment data
`labels` | Label data

### See Also

There are several implementations for specific cluster algorithms:

- `dendro_data.hclust`

- `dendro_data.dendrogram`

- `dendro_data.tree`

- `dendro_data.rpart`

To extract the data for line segments, labels or leaf labels use:

- `segment`: the line segment data

- `label`: the text for each end segment

- `leaf_label`: the leaf labels of a tree diagram

`ggdendrogram`

Other dendro_data methods: `dendro_data.rpart`, `dendro_data.tree`, `dendrogram_data`, `rpart_labels`

Other dendrogram/hclust functions: `dendrogram_data`

### Examples

    require(ggplot2)

    ### Demonstrate dendro_data.dendrogram

    model <- hclust(dist(USArrests), "ave")
    dendro <- as.dendrogram(model)

    # Rectangular lines
    ddata <- dendro_data(dendro, type="rectangle")
    ggplot(segment(ddata)) +
      geom_segment(aes(x=x, y=y, xend=xend, yend=yend)) +
      coord_flip() +
      scale_y_reverse(expand=c(0.2, 0)) +
      theme_dendro()

    # Triangular lines
    ddata <- dendro_data(dendro, type="triangle")
    ggplot(segment(ddata)) +
      geom_segment(aes(x=x, y=y, xend=xend, yend=yend)) +
      theme_dendro()

    # Demonstrate dendro_data.hclust

    require(ggplot2)
    hc <- hclust(dist(USArrests), "ave")

    # Rectangular lines
    hcdata <- dendro_data(hc, type="rectangle")
    ggplot(segment(hcdata)) +
      geom_segment(aes(x=x, y=y, xend=xend, yend=yend)) +
      coord_flip() +
      scale_y_reverse(expand=c(0.2, 0)) +
      theme_dendro()

    # Triangular lines
    hcdata <- dendro_data(hc, type="triangle")
    ggplot(segment(hcdata)) +
      geom_segment(aes(x=x, y=y, xend=xend, yend=yend)) +
      theme_dendro()

    ### Demonstrate the twins of agnes and diana, from package cluster

    if(require(cluster)){
      model <- agnes(votes.repub, metric = "manhattan", stand = TRUE)
      dg <- as.dendrogram(model)
      ggdendrogram(dg)
    }

    if(require(cluster)){
      model <- diana(votes.repub, metric = "manhattan", stand = TRUE)
      dg <- as.dendrogram(model)
      ggdendrogram(dg)
    }

[Package ggdendro version 0.1-20 Index]