A2Rplot.hclust {A2R}R Documentation

Customised plot function for class hclust

Description

The A2Rplot method for class hclust can be used to set different colors to each cluster for a given number of classes (k) ...

Arguments

x An hclust object to plot
k The number of clusters
col.up Color for the upper part. See colors
col.down Vector of colors of length k. One colour per cluster. Default to rainbow(k)
lty.up line type for the upper part. See par.
lty.down line type for the clusters part. See par.
lwd.up line width for the upper part. See par.
lwd.down line width for the clusters part. See par.
type type of link. "rectangle" or "triangle".
knot.pos position of the knots : "mean" mean between the two tree sons, "bary" weighted mean relative to the number of observations in the left and the right branch, "left", "right", "random" just for fun actually
criteria Vector of a criteria to draw on the left of the tree.
fact.sup A factor to categorize the observations.
show.labels boolean. TRUE if the labels should be drawn.
only.tree boolean. TRUE if only the tree should be drawn. Use that to include the tree in a more complicated layout.
boxes boolean. TRUE to draw the bow around the plots
members members of each terminal node. See hclust for more details.

R Graph Gallery

http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=98 http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=79

Author(s)

Romain Francois francoisromain@free.fr

See Also

A2Rplot, plot.hclust

Examples

    
  #example with iris
  require("fpc") # to use the cluster.stats function
  d <- dist(iris[,1:4],method="euc")
  h <- hclust(d)
  Species <- iris[,5]
  cs <- rep(0, 10)
  for(i in 1:11){
    cs[i] <- cluster.stats(d, cutree(h,k=i+1), 
                           silhouette=FALSE, 
                           G2=FALSE, G3=FALSE)$hubertgamma
  }
  
  A2Rplot(h, k=3, fact.sup=Species, knot.pos="bary", criteria=cs, show.labels=FALSE)
  
  
  # examples with state.x77
  d77 <- dist(state.x77)
  h77 <- hclust(d77)
  A2Rplot(h77, k=4, knot.pos="mean", type="tri")
  A2Rplot(h77, k=4, lty.up=1,lwd.down=1,
          col.down=c("purple","black","green3","orange"),
          col.up="gray", boxes=FALSE)
          
  A2Rplot(h77, k=4, knot.pos="left", type="tri")
  
  
  # example showing how to include this in 
  # an other layout with only.tree
  op <- par(no.readonly=TRUE)
  par(mfrow = c(3,3))
  par(mar=c(3,3,3,3))  
  plot(rnorm(50)) # one plot
  plot(rnorm(50)) # one plot
  plot(rnorm(50)) # one plot
  plot(rnorm(50)) # one plot
  par(mar=c(1,1,1,1))
  A2Rplot(h77, k=4, only.tree=TRUE, boxes=FALSE)
  par(mar=c(3,3,3,3))  
  plot(rnorm(50)) # one plot
  plot(rnorm(50)) # one plot
  plot(rnorm(50)) # one plot
  plot(rnorm(50)) # one plot
  par(op)

  ## example using members
  
  #--------------------- from stats::hclust help
  hc <- hclust(dist(USArrests)^2, "cen")
  memb <- cutree(hc, k = 10)
  cent <- NULL
  for(k in 1:10){
    cent <- rbind(cent, colMeans(USArrests[memb == k, , drop = FALSE]))
    }
  hc1 <- hclust(dist(cent)^2, method = "cen", members = table(memb))
  #-----------------------------------------------------------
  hc1$labels <- paste('g',1:10)
  A2Rplot(hc1, 
         members = table(memb), 
         k=4, 
         lwd.up   =  2, lty.up=1, col.up = "gray",
         lwd.down =  1, lty.down='twodash', 
         col.down = c("orange", "brown", "green3", "royalblue"),
         knot.pos = "bary"
         )

  

[Package A2R version 0.0-3 Index]