Поместить ось Y слева от тепловой карты? - PullRequest
9 голосов
/ 02 сентября 2011

Как сделать тепловую карту с метками оси Y слева?Кажется, по умолчанию справа.Нужно ли сделать собственную ось, используя axis()?

1 Ответ

9 голосов
/ 02 сентября 2011

В функции heatmap положения осей жестко закодированы. Но было бы очень легко изменить только одно число, чтобы расположить его на другой стороне. Напечатайте «heatmap» на своей консоли и измените первый аргумент с 4 на 2 во втором axis() вызове.

Все, что я изменил, было:

axis(2, iy, labels = labRow, las = 2, line = -0.5, tick = 0,  # the 2 used to be 4
         cex.axis = cexRow)

Там все еще должны быть изменения в полях для размещения переключателя. Изменение текущего значения от 0 до 5, по-видимому, создает достаточное пространство в примере, с которым я играл со страницы справки:

...
par(mar = c(margins[1L], 5, 0, margins[2L]))

Это был мой тестовый пример:

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