heatmap_2 {Heatplus} | R Documentation |
This function displays an expression data matrix as a heatmap. It is based on
an old version of heatmap
in the stats
package, but offers more
flexibility (e.g. skipping dendrograms, skipping row/column labelling, adding a
legend).
heatmap_2(x, Rowv, Colv, distfun = dist, hclustfun = hclust, add.expr, scale = c("row", "column", "none"), na.rm = TRUE, do.dendro = c(TRUE, TRUE), legend = 0, legfrac = 8, col = heat.colors(12), trim, ...)
x |
the numerical data matrix to be displayed. |
Rowv |
either a dendrogram or a vector of reordering indexes for the rows. |
Colv |
either a dendrogram or a vector of reordering indexes for the columns. |
distfun |
function to compute the distances between rows and columns.
Defaults to dist . |
hclustfun |
function used to cluster rows and columns. Defaults to hclust . |
add.expr |
Expression to be evaluated after the call to image . See Details. |
scale |
indicates whether values should be scaled by either by row, column, or not at all. Defaults to row . |
na.rm |
logical indicating whther to remove NAs. |
do.dendro |
logical vector of length two, indicating (in this order) whether to draw the row and column dendrograms. |
legend |
integer between 1 and 4, indicating on which side of the plot the legend should be drawn, as in mtext . |
legfrac |
fraction of the plot that is taken up by the legend; larger values correspond to smaller legends. |
col |
the color scheme for image . The default sucks. |
trim |
Percentage of values to be trimmed. This helps to keep an informative color scale, see Details. |
... |
extra arguments to image . |
With all parameters at their default, this gives the same result as a very old version of heatmap
that was the base for the modifications. All parameters of the same name have the same function as in heatmap
, though add.expr
, which can be used for adding graphical elements after the call to image
, will probably not produce useful results. Note also that row- and column labels are optional, i.e. if the corresponding dimname
of x
is NULL
, no labels are displayed.
Setting trim
to a number between 0 and 1 uses equidistant classes between the (trim
)- and (1-trim
)-quantile, and lumps the values below and above this range into separate open-ended classes. If the data comes from a
heavy-tailed distribution, this can save the display from putting too many values into to few classes.
Same as heatmap
with keep.dendro=FALSE
: an invisible list giving the reordered indices of the row- and column-elements as elements rowInd
and colInd
.
Original by Andy Liaw, with revisions by Robert Gentleman and Martin Maechler.
Alexander Ploner for this version.
# create data mm = matrix(rnorm(1000, m=1), 100,10) mm = cbind(mm, matrix(rnorm(2000), 100, 20)) mm = cbind(mm, matrix(rnorm(1500, m=-1), 100, 15)) mm2 = matrix(rnorm(450), 30, 15) mm2 = cbind(mm2, matrix(rnorm(900,m=1.5), 30,30)) mm=rbind(mm, mm2) colnames(mm) = paste("Sample", 1:45) rownames(mm) = paste("Gene", 1:130) # similar to base heatmap heatmap_2(mm) # remove column dendrogram heatmap_2(mm, do.dendro=c(TRUE, FALSE)) # add a legend under the plot heatmap_2(mm, legend=1) # make it smaller heatmap_2(mm, legend=1, legfrac=10) # ... on the left side heatmap_2(mm, legend=2, legfrac=10) # remove the column labels by removing the column names colnames(mm)=NULL heatmap_2(mm, legend=1, legfrac=10) # truncate the data drastically heatmap_2(mm, legend=1, legfrac=10, trim=0.1)