График NMDS в R: как нанести на график виды разными цветами, а участки - разными формами?

Я выполняю nmds в R, используя metaMDS из веганского пакета. У меня 8 переменных и два сайта. Я не знаком с редактированием графики и не знаю, как настроить свой сюжет. Мне удалось изменить цвета в зависимости от сайта, но я бы хотел (и действительно не понимаю, как это сделать) график с разными формами для каждой переменной и разными цветами для каждого сайта. Мой подход был следующий:

library(vegan)
nmds_results <- metaMDS(data_nmds[ , 3:10], distance = "bray")
data.scores <- as.data.frame(scores(nmds_results))
data.scores$site <- rownames(data.scores)
data.scores$grp <- data_nmds$station
species.scores <- as.data.frame(scores(nmds_results, "species"))
species.scores$species <- rownames(species.scores)
library(ggplot2)
ggplot() + 
  +     geom_text(data=species.scores,aes(x=NMDS1,y=NMDS2,label=species),alpha=1) +  # add the species labels
  +     geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=grp,colour=grp),size=1) + # add the point markers
  +     geom_text(data=data.scores,aes(x=NMDS1,y=NMDS2,label=site),size=1,vjust=0) +  # add the site labels
  +     scale_colour_manual(values=c("SG01" = "red", "SG05" = "blue")) +
  +     coord_equal() +
  +     theme_bw()

Кто-нибудь может мне помочь?


person Franc    schedule 18.11.2020    source источник
comment
Я не понимаю, какие переменные вы хотите раскрасить?   -  person Alain Danet    schedule 18.11.2020


Ответы (1)


Было бы проще с воспроизводимым примером.

Я пытался угадать, что вы хотите построить, но не уверен.

library(vegan)
#> Le chargement a nécessité le package : permute
#> Le chargement a nécessité le package : lattice
#> This is vegan 2.5-6
library(ggplot2)

set.seed(2)
community_matrix <- matrix(
   sample(1:100,300,replace=T),nrow=10,
   dimnames=list(paste("community",1:10,sep=""),paste("sp",1:30,sep="")))

example_NMDS <- metaMDS(community_matrix, # Our community-by-species matrix
                     k=2, trace = 0) # The number of reduced dimensions
data.scores <- as.data.frame(scores(example_NMDS))
data.scores$site <- rownames(data.scores)
data.scores$grp <- rep(c("1", "2"), each = 5) 
species.scores <- as.data.frame(scores(example_NMDS, "species"))
species.scores$species <- rownames(species.scores)

ggplot() + 
  geom_text(data=species.scores,aes(x=NMDS1,y=NMDS2,label=species), alpha=1) +  # add the species labels
  geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=as.factor(grp), colour=as.factor(site))) + # add the point markers
  geom_text(data=data.scores,aes(x=NMDS1,y=NMDS2,label=site, colour=as.factor(site)), vjust=0) +  # add the site labels
  #scale_colour_manual(values=c("1" = "red", "2" = "blue")) +
  coord_equal() +
  theme_bw()

Создано 18 ноября 2020 г. пакетом REPEX (v0.3.0)

person Alain Danet    schedule 18.11.2020
comment
Спасибо большое, очень полезно! Как вы думаете, можно ли представить каждый вид (sp1, sp2 и т. Д.), Используя разные формы, и раскрасить их в цвет участка? Исходя из вашего опыта, считаете ли вы, что уместно выполнять НМД с использованием параметров окружающей среды, а не видов? - person Franc; 19.11.2020