在 R 中使用颜色表示距离度量

Using colors to represent distance measures in R

我有一个物种丰度数据框,其中包括来自多个地理参考点的样本。我正在使用基于距离的排列来表示物种组成的相似性,例如示例:

sample <- c(1:5)
lon <- c(9,22,31,20,12)
lat <- c(20,22,30,48,53)
sp1 <- c(5,6,14,25,30)
sp2 <- c(0,0,0,3,4)
sp3 <- c(17,12,7,2,2)
sp4 <- c(1,0,2,0,1)
d <- data.frame(sample, lon, lat, sp1, sp2, sp3, sp4)

library(vegan)
library(ggplot2)
library(Rmisc)

dist <- vegdist(d[,4:7], method="euclidean")
PCoA <- as.data.frame(scores(cmdscale(dist)))

co <- ggplot(d, aes(x=lon, y=lat)) + geom_point() + ggtitle("Coordinates") + theme_bw() + geom_text(label=sample, hjust = 0, nudge_x = 0.5)
pc <- ggplot(PCoA, aes(x=Dim1, y=Dim2)) + geom_point() + ggtitle("PCoA Euclidean") + theme_bw() + geom_text(label=sample, hjust = 0, nudge_x = 0.5)

m <- matrix(1:2, byrow=T, nrow=1)
multiplot(co, pc, layout=m)

我想用坐标制作散点图,但使用颜色来表示排序分数(即,它是第 1 轴和第 2 轴)或至少表示距离度量(欧几里得或其他)并生成此结果: result I want

我试图关联调色板,但我不知道如何为二维颜色关联 space(即,基于我的 PCoA 排序)。 有人知道怎么做吗?

您可以使用 colorplaner(see here):

library(colorplaner)
gg_data <- cbind(d[, c("sample","lon","lat")], PCoA[,c("Dim1","Dim2")])


ggplot(gg_data, aes(x = lon, y = lat, color = Dim1, color2 = Dim2)) + 
  geom_point() + 
  scale_color_colorplane()  + 
  ggtitle("Coordinates") + 
  theme_bw() + 
  geom_text(label=sample, hjust = 0, nudge_x = 0.5)

这给出: