我尝试使用heatmap.2
包中的gplots
生成热图。我的目标是生成热图,在绘图区域和热图之间没有额外的空间(不包括底部的键)。通过查看一些帖子,我设法使用lmat
将热图映射到绘图区域(这样左侧部分没有空格)。但我无法将颜色键置于情节下方。因此,由于投影在右侧的色标比例,因此存在一些空间。
任何人都可以告诉我如何在底部的热图的中心制作颜色键(从而避免额外的空间问题)。
我无法显示图像。我使用以下代码生成热图。
library(gplots)
dat <- read.csv("C:..../xxx.csv")
dat_matrix <- data.matrix(dat)
colors = c(seq(-2,-1,length=100),seq(-1,1,length=100),seq(1,2,length=100))
my_palette <- colorRampPalette(c("green","black","red"))(n = 299)
lmat = rbind(c(1,3),c(2,1),c(1,4))
lwid = c(1,4)
lhei = c(1,4,1.2)
heatmap.2(dat_matrix, dendrogram="none", Rowv = FALSE, Colv = FALSE,
col = my_palette, breaks = colors, scale = "none", key = TRUE,
density.info = "none", trace = "none", labRow = FALSE, symm = FALSE,
symkey = TRUE, symbreaks = TRUE, lmat = lmat, lwid = lwid, lhei = lhei)
答案 0 :(得分:0)
您可以使用参数key.par
并将mar
设置为合适的值。例如,使用dat_matrix <- as.matrix(mtcars)
以及您的数据,我使用mar=c(8,0,0,12)
。您必须弄清楚哪些mar
最适合您的数据。
heatmap.2(dat_matrix,
dendrogram="none",
Rowv=FALSE,
Colv=FALSE,
col = my_palette,
breaks=colors,
scale="none",
key=TRUE,
key.par = list(mar= c(8, 0, 0, 12)),
density.info="none",
trace="none",
labRow=FALSE,
symm=F,
symkey=T,
symbreaks=T,
lmat = lmat,
lwid = lwid,
lhei = lhei)