我有一个矩阵显示两个不同地点的物种之间的特征相似性,即
relationship<-matrix(1:6,ncol=2)
colnames(relationship)<-c("Sp1","Sp2")
rownames(relationship)<-c("Sp3","Sp4","Sp5")
Sp1 Sp2
Sp3 1 4
Sp4 2 5
Sp5 3 6
我还有一个矩阵显示每个站点的丰富度
abundance<-matrix(1:5,ncol=1)
rownames(abundance)<-c("Sp1","Sp2","Sp3","Sp4","Sp5")
colnames(abundance)<-"abundance"
abundance
Sp1 1
Sp2 2
Sp3 3
Sp4 4
Sp5 5
我想创建一个带有条形图的热图,如下所示:
更新原始问题
或者(正如BenBarnes所建议的)我想创建一个马赛克图,使用丰度来控制图块的大小和矩阵,以指示颜色的“强度”。因此,对于上面的例子非常粗略,马赛克图将如下所示:
此外,我想知道您对哪种方法最明确地显示物种之间的关系以及它们的丰度之间的关系有何见解?
答案 0 :(得分:3)
使用graphics
包函数(条形图,图片等),您可以执行以下操作。
bp1 <- barplot(t(abundance[3:5, ]), width = 0.2, space = 0.7, plot = FALSE)
bp2 <- barplot(t(abundance[1:2, ]), horiz = TRUE, width = 0.05, space = 1, plot = FALSE)
par(fig = c(0, 0.8, 0, 0.8), new = TRUE)
par(xaxt = "n", yaxt = "n")
image(relationship)
par(fig = c(0, 0.8, 0.55, 1), new = TRUE)
barplot(t(abundance[3:5, ]), width = 0.2, space = 0.7)
text(bp1, abundance[3:5,] - 0.5, c("Sp3", "Sp4", "Sp5"))
par(fig = c(0.65, 1, 0, 0.8), new = TRUE)
barplot(t(abundance[1:2, ]), horiz = TRUE, width = 0.05, space = 1)
text(abundance[1:2,] - 0.5, bp2, c("Sp1", "Sp2"))