Я создаю NMDS для своих магистров, и сейчас я хочу сделать симпатичные графики для моей диссертации с помощью ggplot. Я смотрю на то, как мои виды распределены по моим 3 регионам (столбец 1 моего набора данных об окружающей среде ( env )). Когда я использовал функцию заговора, я быстро взглянул на NMDS, я получил это:
MNDS <- metaMDS(spe, distance = "bray")
NMDS <- data.frame(NMDS1 = nmds$points[,1], NMDS2 = nmds$points[,2], Region=env$REGION)
NMDS$Lake <- rownames(NMDS)
spps <- data.frame(scores(nmds, display = "species"))
spps$species <- row.names(spps)
spps$Taxa <- trait$Taxa
spps$Trophic <- trait$Trophic.group
plot(MNDS, type = "t", main = paste("Region"))
ordiellipse(MNDS, as.factor(env[,1]), display = "sites", kind ="sd", conf = 0.95, label = T)
Все хорошо. Моя проблема, когда я пытался воспроизвести NMDS в ggplot с помощью функции veganCovEllipse. Эллипсы теперь намного меньше, чем когда я использовал ordiellipse. Я также замечаю, что если я изменю значение масштаба функции veganCovEllipse, я получу большие эллипсы.
veganCovEllipse<-function (cov, center = c(0, 0), scale = 1, npoints = 100)
{
theta <- (0:npoints) * 2 * pi/npoints
Circle <- cbind(cos(theta), sin(theta))
t(center + scale * t(Circle %*% chol(cov)))
}
df_ell <- data.frame()
for(g in levels(NMDS$Region)){
df_ell <- rbind(df_ell, cbind(as.data.frame(with(NMDS[NMDS$Region==g,],
veganCovEllipse(cov.wt(cbind(NMDS1,NMDS2),wt=rep(1/length(NMDS1),
length(NMDS1)))$cov,center=c(mean(NMDS1),mean(NMDS2)))))
,Region=g))
}
graph.nmds <- ggplot(data = NMDS, aes(y = NMDS2, x = NMDS1))+
geom_path(data = df_ell, aes(x = NMDS1, y = NMDS2, group = Region))+
geom_text(data=NMDS,aes(x=NMDS1,y=NMDS2,label=Lake),size=2.5,
hjust= -0.25, vjust= 0.5, colour = "#666666") +
geom_point(aes(shape = Region), size = 3) +
geom_text(data=spps, aes(x=spps$NMDS1, y=spps$NMDS2, label=species, colour = Trophic), size = 3, alpha = 0.75) +
scale_shape_manual(values=c(15, 17, 16), limits=c("YUKON", "ALASKA", "NWT"),labels=c("Yukon", "Alaska", "NWT"))+
coord_cartesian(xlim = c(-1.5,2))+
scale_colour_manual(values = c("#CC0033", "#339900", "#990099", "#666600", "#FF9900", "#0000FF"),
limits=c("carnivore", "herbivore", "immature", "omniherb", "omnivore", "parasitic"))+
theme_bw()+
theme(panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.background = element_blank())
graph.nmds
Почему эллипсы такие маленькие, когда я использую veganCovEllipse, по сравнению с тем, когда я использую ordiellipse?
Также, как я уже говорил, когда я изменяю масштаб на 2 в функции veganCovEllipse, я получаю большие эллипсы. Зачем? Что означает масштаб в этой функции?
Спасибо:)