如何创建不同物种群的排序图。

我很感谢任何帮助,因为我是一个完全的R noob。

我在R中创建了一个带有物种列表和环境变量的CA排序图。现在的问题是,物种属于不同的组(苔藓、地衣或草本植物)。我希望图中的物种点在每个组中有不同的颜色。我有一个非常大的物种列表,其中有很多列,所以我不能单独引用每一列。

列名是这样的。

herb1 herb2 herb3 moss1 moss2 lichen1到目前为止我唯一的代码是这样的。

env.allspecies.cca<- vegan::cca(alpin.spec, alpin.env)

autoplot(env.allspecies.cca, title = c("CCA"))

我试着把物种数据集分成 alpin.spec.herb, alpin.spec.moss,alpin.spec.lichen三类

但我无法得出结论。

我怎样才能绘制使所有的药材品种点都有相同的颜色?

或者,也许我可以把列成组,并绘制这些组?

解决方案:

类似这样的? [1]: https: /i.stack.imgur.comtNz2X.jpg

library(vegan)

#Generate a data frame with some random species data containing 10 species
set.seed(123)#make it reproducible
random.spec            <- as.data.frame(matrix(rbinom(100, 10, 0.5), ncol = 10))
colnames(random.spec)  <- paste0('spec', rep(1:10))

#looking at the random.spec data
head(random.spec)

  spec1 spec2 spec3 spec4 spec5 spec6 spec7 spec8 spec9 spec10
1     4     8     7     8     3     2     6     6     4      3
2     6     5     6     7     5     5     3     6     6      6
3     5     6     6     6     5     6     5     6     5      4
4     7     5     9     6     4     3     4     0     6      6
5     7     3     6     2     3     5     6     5     3      4
6     2     7     6     5     3     4     5     4     5      4

#Generate a data frame with some random environmental variables.
set.seed(123)#make it reproducible
random.env             <- as.data.frame(matrix(rnorm(100, 10, 2), ncol = 10))
colnames(random.env)   <- paste0('variable', rep(1:10))

#looking at the random.env data
head(random.env)

  variable1 variable2 variable3 variable4 variable5 variable6 variable7 variable8 variable9
1  8.879049 12.448164  7.864353 10.852928  8.610586 10.506637 10.759279  9.017938 10.011528
2  9.539645 10.719628  9.564050  9.409857  9.584165  9.942906  8.995353  5.381662 10.770561
3 13.117417 10.801543  7.947991 11.790251  7.469207  9.914259  9.333585 12.011477  9.258680
4 10.141017 10.221365  8.542218 11.756267 14.337912 12.737205  7.962849  8.581598 11.288753
5 10.258575  8.888318  8.749921 11.643162 12.415924  9.548458  7.856418  8.623983  9.559027
6 13.430130 13.573826  6.626613 11.377281  7.753783 13.032941 10.607057 12.051143 10.663564
  variable10
1  11.987008
2  11.096794
3  10.477463
4   8.744188
5  12.721305
6   8.799481

#Apply the CCA
results                <- cca(random.spec~., random.env)

#We have 10 species and the first 5 (spec1-spec5) in the data frame belonged to one 
#group and the other 5 (spec6-spec10) to another group. We give the first 5 species 
#in the data frame a red colour and the other 5 a blue colour.
pointcolour            <- c(rep("red", 5), rep("blue", 5))

#We first create an empty plot (type = "n").
plot(results, scaling = 3, display = "species", type = "n",)

#Now we plot the species in the plot with the colours (col = pointcolour).
text(results, display = "species", cex = 1.5, col = pointcolour, scaling = 3)

#As last we plot the environmental variables.
text(results, display = "bp", add = TRUE, col = "grey40", scaling = 3)

给TA打赏
共{{data.count}}人
人已打赏
未分类

在R中创建一个单表,提供A列在B列和C列之间的平均值[重复]

2022-9-8 12:06:39

未分类

Angular Unit Test (w Jest) 一个导入并使用esm模块的服务。

2022-9-8 12:17:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索