hmap {seriation} | R Documentation |
Plot Heat Map Reordered Using Seriation
Description
Provides heatmaps reordered using several different seriation methods. This includes dendrogram based reordering with optimal leaf order and matrix seriation-based heat maps.
Usage
hmap(
x,
distfun = stats::dist,
method = "OLO_complete",
control = NULL,
scale = c("none", "row", "column"),
plot_margins = "auto",
col = NULL,
col_dist = grays(power = 2),
row_labels = NULL,
col_labels = NULL,
...
)
gghmap(
x,
distfun = stats::dist,
method = "OLO",
control = NULL,
scale = c("none", "row", "column"),
prop = FALSE,
...
)
Arguments
x |
a matrix or a dissimilarity matrix of class dist. If a
dissimilarity matrix is used, then the |
distfun |
function used to compute the distance (dissimilarity) between
both rows and columns. For |
method |
a character strings indicating the used seriation algorithm
(see |
control |
a list of control options passed on to the seriation
algorithm specified in |
scale |
character indicating if the values should be centered and scaled in either the row direction or the column direction, or none. Default is none. |
plot_margins |
character indicating what to show in the margins. Options are:
|
col |
a list of colors used. |
col_dist |
colors used for displaying distances. |
row_labels , col_labels |
a logical indicating if row and column labels
in |
... |
further arguments passed on to |
prop |
logical; change the aspect ratio so cells in the image have a equal width and height. |
Details
For dendrogram based heat maps, the arguments are passed on to
stats::heatmap()
in stats. The following arguments for heatmap()
cannot be used: margins
, Rowv
, Colv
, hclustfun
, reorderfun
.
For seriation-based heat maps further arguments include:
-
gp
an object of classgpar
containing graphical parameters (seegpar()
in package grid). -
newpage
a logical indicating whether to start plot on a new page -
prop
a logical indicating whether the height and width ofx
should be plotted proportional to its dimensions. -
showdist
Display seriated dissimilarity matrices? Values are"none"
,"both"
,"rows"
or"columns"
. -
key
logical; show a colorkey? -
key.lab
Label plotted next to the color key. -
margins
bottom and right-hand-side margins are calculated automatically or can be specifies as a vector of two numbers (in lines). -
zlim
range of values displayed. -
col
,col_dist
color palettes used.
Value
An invisible list with elements:
rowInd , colInd |
index permutation vectors. |
reorder_method |
name of the method used to reorder the matrix. |
The list may contain additional elements (dendrograms, colors, etc).
Author(s)
Michael Hahsler
See Also
Other plots:
VAT()
,
bertinplot()
,
dissplot()
,
palette()
,
pimage()
Examples
data("Wood")
# regular heatmap from package stats
heatmap(Wood, main = "Wood (standard heatmap)")
# Default heatmap does Euclidean distance, hierarchical clustering with
# complete-link and optimal leaf ordering. Note that the rows are
# ordered top-down in the seriation order (stats::heatmap orders in reverse)
hmap(Wood, main = "Wood (opt. leaf ordering)")
hmap(Wood, plot_margins = "distances", main = "Wood (opt. leaf ordering)")
hmap(Wood, plot_margins = "none", main = "Wood (opt. leaf ordering)")
# Heatmap with correlation-based distance, green-red color (greenred is
# predefined) and optimal leaf ordering and no row label
dist_cor <- function(x) as.dist(sqrt(1 - cor(t(x))))
hmap(Wood, distfun = dist_cor, col = greenred(100),
main = "Wood (reorded by corr. between obs.)")
# Heatmap with order based on the angle in two-dimensional MDS space.
hmap(Wood, method = "MDS_angle", col = greenred(100), row_labels = FALSE,
main = "Wood (reorderd using ange in MDS space)")
# Heatmap for distances
d <- dist(Wood)
hmap(d, main = "Wood (Euclidean distances)")
# order-based with dissimilarity matrices
hmap(Wood, method = "MDS_angle",
col = greenred(100), col_dist = greens(100, power = 2),
keylab = "norm. Expression", main = "Wood (reorderd with distances)")
# without the distance matrices
hmap(Wood, method = "MDS_angle", plot_margins = "none",
col = greenred(100), main = "Wood (reorderd without distances)")
# Manually create a simple heatmap with pimage.
o <- seriate(Wood, method = "heatmap",
control = list(dist_fun = dist, seriation_method = "OLO_ward"))
o
pimage(Wood, o)
# Note: method heatmap calculates reorderd hclust objects which can be used
# for many heatmap implementations like the standard implementation in
# package stats.
heatmap(Wood, Rowv = as.dendrogram(o[[1]]), Colv = as.dendrogram(o[[2]]))
# ggplot 2 version does not support dendrograms in the margin (for now)
if (require("ggplot2")) {
library("ggplot2")
gghmap(Wood) + labs(title = "Wood", subtitle = "Optimal leaf ordering")
# More parameters (see ? ggpimage): reverse column order and flip axes, make a proportional plot
gghmap(Wood, reverse_columns = TRUE) +
labs(title = "Wood", subtitle = "Optimal leaf ordering")
gghmap(Wood, flip_axes = TRUE) +
labs(title = "Wood", subtitle = "Optimal leaf ordering")
gghmap(Wood, flip_axes = TRUE, prop = TRUE) +
labs(title = "Wood", subtitle = "Optimal leaf ordering")
dist_cor <- function(x) as.dist(sqrt(1 - cor(t(x))))
gghmap(Wood, distfun = dist_cor) +
labs(title = "Wood", subtitle = "Reorded by correlation between observations") +
scale_fill_gradient2(low = "darkgreen", high = "red")
gghmap(d, prop = TRUE) +
labs(title = "Wood", subtitle = "Euclidean distances, reordered")
# Note: the ggplot2-based version currently cannot show distance matrices
# in the same plot.
# Manually seriate and plot as pimage.
o <- seriate(Wood, method = "heatmap", control = list(dist_fun = dist,
seriation_method = "OLO_ward"))
o
ggpimage(Wood, o)
}