How do I make a heatmap with the Y axis labels on the left? It seems to default to the right. Do I need to make a custom axis using axis()
?
Looks like ax. invert_yaxis() solves it.
The heatmap() function is natively provided in R. It produces high quality matrix and offers statistical tools to normalize input data, run clustering algorithm and visualize the result with dendrograms. It is one of the very rare case where I prefer base R to ggplot2 .
A heat map (or heatmap) is a data visualization technique that shows magnitude of a phenomenon as color in two dimensions. The variation in color may be by hue or intensity, giving obvious visual cues to the reader about how the phenomenon is clustered or varies over space.
In the heatmap
function the positions of the axes are hard-coded. But it would be very easy to change just a single number to get it positioned on the other side. Type "heatmap" at your console and change the first argument from a 4 to a 2 in the second axis()
call.
All I changed was:
axis(2, iy, labels = labRow, las = 2, line = -0.5, tick = 0, # the 2 used to be 4
cex.axis = cexRow)
There still need to be changes in the margins to accommodate the switch. Changing the current value of 0 to 5 seemed to create adequate space in the example I was playing with from the help page:
...
par(mar = c(margins[1L], 5, 0, margins[2L]))
This was my test case:
x <- as.matrix(mtcars)
rc <- rainbow(nrow(x), start=0, end=.3)
cc <- rainbow(ncol(x), start=0, end=.3)
utils::str(hv) # the two re-ordering index vectors
## no dendrogram (nor color strip)
heatmap.new(x, Colv = NA, Rowv=NA, col = cm.colors(256), scale="column",
margins=c(5,2),
xlab = "specification variables", ylab= "Car Models",
main = "heatmap(<Mtcars data>, ..., scale = \"column\")")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With