我的以下代码:
library(gplots);
library(RColorBrewer);
dat <- read.table("http://pastebin.com/raw.php?i=wM7WxEvY",sep="\t",na.strings="NA",header=TRUE)
dat <- dat[complete.cases(dat),]
dat.log <- log2(dat);
# Clustering and distance function
hclustfunc <- function(x) hclust(x, method="ward")
distfunc <- function(x) dist(x,method="maximum")
# Here we cluster based on the Celltype (Column)
d <- distfunc(t(dat.log))
fit <- hclustfunc(d)
clusters <- cutree(fit, h=20)
nofclust.height <- length(unique(as.vector(clusters)));
# Colors setting
hmcols <- rev(redblue(256));
selcol <- colorRampPalette(brewer.pal(9,"Set1"))
clustcol.height = selcol(nofclust.height);
pdf(file="temp.pdf",width=30,height=40);
heatmap.2(as.matrix(dat.log),Colv=FALSE,lhei = c(0.25,4),ColSideColors=clustcol.height[clusters],density.info="none",scale="none",margin=c(10,10),col=hmcols,symkey=F,trace="none",dendrogram="none",keysize=1,hclust=hclustfunc,distfun=distfunc);
dev.off();
生成此图:
请注意ColSideColors
太高了。如何缩短它?
答案 0 :(得分:1)
?heatmap.2
:可以通过为lmat,lwid和lhei指定适当的值来覆盖RowSideColor
和ColSideColor
的布局。lmat
控制相对位置每个元素,lwid
控制列宽,lhei
控制行高。有关如何使用这些参数的详细信息,请参阅layout的帮助页面。“
在您的情况下,您必须更改lhei,请尝试lhei=c(1,15)