Learn R Programming

circular (version 0.5-1)

heatmap.circular: Draw a Heat Map for circular data

Description

A heat map is a false color image (basically image(t(x))) with a dendrogram added to the left side and to the top. Typically, reordering of the rows and columns according to some set of values (row or column means) within the restrictions imposed by the dendrogram is carried out. See also heatmap.

Usage

heatmap.circular(x, Rowv = NULL, Colv = if (symm) "Rowv" else NULL, 
distfun = dist.circular, hclustfun = hclust, 
reorderfun = function(d, w) reorder(d, w), add.expr, symm = FALSE, 
revC = identical(Colv, "Rowv"), na.rm = TRUE, margins = c(5, 5), 
lwid = c(1, 4), lhei = c(1, 4), ColSideColors, RowSideColors, 
NAColors = "black", cexRow = 0.2 + 1/log10(nr), cexCol = 0.2 + 1/log10(nc), 
labRow = NULL, labCol = NULL, main = NULL, xlab = NULL, ylab = NULL, 
keep.dendro = FALSE, annotate.expr, annotate = rep(NA, 4), 
verbose = getOption("verbose"), ...)

Value

par(mfrow= *) or (mfcol= *)

has been called.

Arguments

x

numeric matrix of class circular of the values to be plotted.

Rowv

determines if and how the row dendrogram should be computed and reordered. Either a dendrogram or a vector of values used to reorder the row dendrogram or NA to suppress any row dendrogram (and reordering) or by default, NULL, see ‘Details’ below.

Colv

determines if and how the column dendrogram should be reordered. Has the same options as the Rowv argument above and additionally when x is a square matrix, Colv = "Rowv" means that columns should be treated identically to the rows (and so if there is to be no row dendrogram there will not be a column one either).

distfun

function used to compute the distance (dissimilarity) between both rows and columns. Defaults to dist.circular.

hclustfun

function used to compute the hierarchical clustering when Rowv or Colv are not dendrograms. Defaults to hclust. Should take as argument a result of distfun and return an object to which as.dendrogram can be applied.

reorderfun

function(d,w) of dendrogram and weights for reordering the row and column dendrograms. The default uses reorder.dendrogram.

add.expr

expression that will be evaluated after the call to image. Can be used to add components to the plot.

symm

logical indicating if x should be treated symmetrically; can only be true when x is a square matrix.

revC

logical indicating if the column order should be reversed for plotting, such that e.g., for the symmetric case, the symmetry axis is as usual.

na.rm

logical indicating whether NA's should be removed.

margins

numeric vector of length 2 containing the margins (see par(mar= *)) for column and row names, respectively.

lwid

a vector of values for the widths of columns on the device. Relative widths are specified with numeric values. Absolute widths (in centimetres) are specified with the lcm() function (see layout).

lhei

a vector of values for the heights of rows on the device. Relative and absolute heights can be specified, see lwid above.

ColSideColors

(optional) character vector of length ncol(x) containing the color names for a horizontal side bar that may be used to annotate the columns of x.

RowSideColors

(optional) character vector of length nrow(x) containing the color names for a vertical side bar that may be used to annotate the rows of x.

NAColors

the color used to plot missing values.

cexRow, cexCol

positive numbers, used as cex.axis in for the row or column axis labeling. The defaults currently only use number of rows or columns, respectively.

labRow, labCol

character vectors with row and column labels to use; these default to rownames(x) or colnames(x), respectively.

main, xlab, ylab

main, x- and y-axis titles; defaults to none.

keep.dendro

logical indicating if the dendrogram(s) should be kept as part of the result (when Rowv and/or Colv are not NA).

annotate

annotation in the four external side of the figure. A positive value in a position means you want annotate something in that position (1=bottom, 2=left, 3=top, 4=right). For instance, annotate=c(0.1, NA, NA, 1, 1) means you want to annotate one thing on the bottom with dimension 0.1 and two things on right each with dimension 1.

annotate.expr

must be a list of expressions with the same length as annotate. For instance for annotate=c(0.1, NA, NA, 1, 1) you must have something as annotate.expr=list(expr1, NA, NA, expr2, expr2) where expr1 etc. must be a valid R expression able to produce a plot.

verbose

logical indicating if information should be printed.

...

additional arguments passed on to image, e.g., col specifying the colors.

Author

Claudio Agostinelli using the code from heatmap.

Details

If either Rowv or Colv are dendrograms they are honored (and not reordered). Otherwise, dendrograms are computed as dd <- as.dendrogram(hclustfun(distfun(X))) where X is either x or t(x).

If either is a vector (of ‘weights’) then the appropriate dendrogram is reordered according to the supplied values subject to the constraints imposed by the dendrogram, by reorder(dd, Rowv), in the row case. If either is missing, as by default, then the ordering of the corresponding dendrogram is by the mean direction value of the rows/columns, i.e., in the case of rows, Rowv <- rowMeans(x, na.rm=na.rm). If either is NULL, no reordering will be done for the corresponding side.

Unless Rowv = NA (or Colw = NA), the original rows and columns are reordered in any case to match the dendrogram, e.g., the rows by order.dendrogram(Rowv) where Rowv is the (possibly reorder()ed) row dendrogram.

heatmap() uses layout and draws the image in the lower right corner of a 2x2 layout. Consequentially, it can not be used in a multi column/row layout, i.e., when par(mfrow= *) or (mfcol= *) has been called.

See Also

dist.circular, heatmap, image, hclust