Вам следует установить Rowv
и Colv
на NA
, если вы не хотите, чтобы дендрограммы и последующий порядок упорядочивались. Кстати, вы также должны поставить масштабирования. Используя df Andrie:
heatmap(as.matrix(df)[order(k$cluster),],Rowv=NA,Colv=NA,scale="none",labRow=NA)
На самом деле, вся эта тепловая карта основана на image()
. Вы можете взломать, используя image
, чтобы построить график точно так, как вы хотите. Heatmap использует layout () внутри, поэтому будет сложно установить поля. С изображением вы можете сделать, например:
myHeatmap <- function(x,ord,xlab="",ylab="",main="My Heatmap",
col=heat.colors(5), ...){
op <- par(mar=c(3,0,2,0)+0.1)
on.exit(par(op))
nc <- NCOL(x)
nr <- NROW(x)
labCol <- names(x)
x <- t(x[ord,])
image(1L:nc, 1L:nr, x, xlim = 0.5 + c(0, nc), ylim = 0.5 +
c(0, nr), axes = FALSE, xlab=xlab, ylab=ylab, main=main,
col=col,...)
axis(1, 1L:nc, labels = labCol, las = 2, line = -0.5, tick = 0)
axis(2, 1L:nr, labels = NA, las = 2, line = -0.5, tick = 0)
}
library(RColorBrewer)
myHeatmap(df,order(k$cluster),col=brewer.pal(5,"BuGn"))
Чтобы создать участок с меньшими полями на стороне. Вы также можете манипулировать осями, цветами, ... Вам обязательно стоит взглянуть на пакет RColorBrewer
(Эта пользовательская функция основана на внутренней графике, используемой HeatMap между прочим, упрощенной для иллюстрации и избавляющей от всего дендрограммного материала)