R 对热图的修改
我正在制作一个热图,不过我想分开列,并在每行之间添加一行。我很清楚,这样做会让这一切变得很好,而不是热图。但这是我老板的设想 下面是我当前热图的代码。任何关于分隔列和在每个“人”之间添加一行的建议都将不胜感激R 对热图的修改,r,graphics,heatmap,R,Graphics,Heatmap,我正在制作一个热图,不过我想分开列,并在每行之间添加一行。我很清楚,这样做会让这一切变得很好,而不是热图。但这是我老板的设想 下面是我当前热图的代码。任何关于分隔列和在每个“人”之间添加一行的建议都将不胜感激 x11 <- c(0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1
x11 <- c(0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1)
x22 <- c(1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1)
x <- rbind(x11, x22)
hv <- heatmap(t(x), col = c("cornflowerblue", "hotpink"), margins = c(4, 12), Colv = NA, Rowv = NA, scale = "none", xlab ="", ylab ="", main = "", labCol=c("BP", "Cx"), cexCol =2)
legend("topright", c("No Osteomyelitis", "Osteomyelitis"), col=c("cornflowerblue", "hotpink"), bty="n", fill=c("cornflowerblue", "hotpink"))
x11我建议您切换到gplots::heatmap.2()
,这样可以更好地控制基本相同参数的绘图
以您的好例子(+1 btw)为基础,通过添加colsep
、rowsep
、sepcolor
和sepwidth
参数来控制行和列之间的分隔(以及trace='none'
,因为我不喜欢它),给出:
x11我建议您切换到gplots::heatmap.2()
,这样可以更好地控制基本相同参数的绘图
以您的好例子(+1 btw)为基础,通过添加colsep
、rowsep
、sepcolor
和sepwidth
参数来控制行和列之间的分隔(以及trace='none'
,因为我不喜欢它),给出:
x11同意,将共享我最终使用的代码。谢谢是的,同意,将共享我最终使用的代码。谢谢
hv <- heatmap.2(t(x), key=FALSE, trace="none", colsep = seq(1,nrow(x)-1),
rowsep = seq(1,ncol(x)-1),
sepcolor = "white",
sepwidth = c(0.1, 0.0005), col = c("cornflowerblue", "hotpink"), margins = c(4, 12), Colv = NA, Rowv = NA, scale = "none", xlab ="", ylab ="", main = "", labCol=c("BP", "Cx"), cexCol =2)
legend("topleft", c("No Osteomyelitis", "Osteomyelitis"), col=c("cornflowerblue", "hotpink"), bty="n", fill=c("cornflowerblue", "hotpink"))
x11 <- c(0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1)
x22 <- c(1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1)
x <- rbind(x11, x22)
hv <- heatmap(t(x), col = c("cornflowerblue", "hotpink"), margins = c(4, 12), Colv = NA, Rowv = NA, scale = "none", xlab ="", ylab ="", main = "", labCol=c("BP", "Cx"), cexCol =2)
legend("topright", c("No Osteomyelitis", "Osteomyelitis"), col=c("cornflowerblue", "hotpink"), bty="n", fill=c("cornflowerblue", "hotpink"))
library(gplots)
heatmap.2(t(x),
col = c("cornflowerblue", "hotpink"),
margins = c(4, 12),
Colv = NA, Rowv = NA,
scale = "none",
xlab ="",
ylab ="",
main = "",
labCol=c("BP", "Cx"),
cexCol = 2,
trace = 'none',
colsep = seq(1,nrow(x)-1),
rowsep = seq(1,ncol(x)-1),
sepcolor = "white",
sepwidth = c(0.1, 0.05))