开发者

Put the Y axis on the left of a heatmap?

How do I ma开发者_如何学运维ke 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()?


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\")")
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜