Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

display a matrix, including the values, as a heatmap

Tags:

r

heatmap

What I'd like to do is take this matrix:

> partb                 0.5  1.5   1a   1b   -2   -3 A1FCLYRBAB430F 0.26 0.00 0.74 0.00 0.00 0.00 A1SO604B523Q68 0.67 0.33 0.00 0.00 0.00 0.00 A386SQL39RBV7G 0.00 0.33 0.33 0.33 0.00 0.00 A3GTXOXRSE74WD 0.41 0.00 0.08 0.03 0.05 0.44 A3OOD9IMOHPPFQ 0.00 0.00 0.33 0.00 0.33 0.33 A8AZ39QM2A9SO  0.13 0.54 0.18 0.13 0.00 0.03 

And then make a heatmap that has each of the values in the now colored cells.

Making a heatmap is easy:

> heatmap( partb, Rowv=NA, Colv=NA, col = heat.colors(256),  margins=c(5,10)) 

But for the life of me I can't figure out how to put the value in each of the cells.

What am I missing? Surely this is a common thing.

like image 261
Nathan VanHoudnos Avatar asked Sep 24 '10 17:09

Nathan VanHoudnos


People also ask

How do you create a heatmap matrix?

Create a matrix of data. Then create a heatmap of the matrix values. Use custom labels along the x-axis and y-axis by specifying the first two input arguments as the labels you want. Specify the title and axis labels by setting properties of the HeatmapChart object.

How do you show values in a heatmap?

Heatmap is defined as a graphical representation of data using colors to visualize the value of the matrix. In this, to represent more common values or higher activities brighter colors basically reddish colors are used and to represent less common or activity values, darker colors are preferred.


2 Answers

For example:

m <- matrix(1:30, ncol=6) colnames(m) <- paste("C", 1:6, sep="") rownames(m) <- paste("R", 1:5, sep="") m  image(1:ncol(m), 1:nrow(m), t(m), col = terrain.colors(60), axes = FALSE) axis(1, 1:ncol(m), colnames(m)) axis(2, 1:nrow(m), rownames(m)) for (x in 1:ncol(m))   for (y in 1:nrow(m))     text(x, y, m[y,x]) 
like image 123
lcgong Avatar answered Sep 22 '22 13:09

lcgong


Try heatmap.2 from the gplots package. The cellnote and notecol parameters control the text placed in cells. You'll probably want dendrogram = "none" as well.

like image 23
Connor M Avatar answered Sep 24 '22 13:09

Connor M