You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一张NMDS图中设置多物种丰度对应geom_point的点大小

实现方案

你只要把合并了NMDS得分的原始宽表转成长表,让每个样本对应多条物种丰度记录,就能直接把不同物种的丰度映射为点大小,同时用颜色或形状区分不同物种,修改后的完整代码如下:

library(tidyverse)
library(vegan)
# 原始数据构造部分不变
df <- strsplit("Group   Estacion    Richness    Especie1    Especie2    Especie3    Especie4    Especie5    Especie6    Especie7
Agosto  E1  6   87  87  89  91  87  94  0
Agosto  E2  7   77  78  78  77  95  45  45
Agosto  E3  7   85  87  89  89  78  89  95
Agosto  E4  3   57  56  54  0   0   0   0
Diciembre   E1  6   77  78  78  77  95  45  0
Diciembre   E2  7   65  64  68  69  65  64  69
Diciembre   E3  7   74  71  75  75  76  81  75
Diciembre   E4  2   38  39  0   0   0   0   0
Abril   E1  7   81  82  79  82  78  79  82
Abril   E2  7   69  71  72  71  68  69  73
Abril   E3  7   74  79  78  75  79  75  76
Abril   E4  3   51  52  49  0   0   0   0", "\n") %>%
  unlist() %>%
  strsplit("\t") %>%
  unlist() %>%
  matrix(ncol = 10, byrow = TRUE) %>%
  {`colnames<-`(data.frame(.[-1,], stringsAsFactors = FALSE), .[1,])} %>%
  mutate_at(vars(-Group, -Estacion), as.numeric)

# NMDS计算部分不变
nmds <- metaMDS(select(df, starts_with("Especie")))

# 核心修改:合并数据后转长表,再绘图
scores(nmds) %>%
  cbind(df) %>%
  # 把物种列转为长表,cols参数可以指定你需要的物种,比如只要前3个就写c(Especie1,Especie2,Especie3)
  pivot_longer(cols = starts_with("Especie"), names_to = "species", values_to = "abundance") %>%
  ggplot(aes(x = NMDS1, y = NMDS2)) +
  # 大小映射丰度,颜色映射物种,也可以按需调整为颜色映射Group、形状映射species
  geom_point(aes(size = abundance, color = species), alpha = 0.7) +
  stat_ellipse(geom = "polygon", aes(group = Group, color = Group, fill = Group), alpha = 0.15) +
  annotate("text", x = -2, y = 0.95, label = paste0("stress: ", format(nmds$stress, digits = 4)), hjust = 0) +
  # 可以自定义点大小范围
  scale_size_continuous(range = c(1, 8)) +
  theme_bw()

可选调整说明

  • 只展示指定物种:修改pivot_longer的cols参数,填入你需要的物种列名即可
  • 区分采样分组和物种:可以将color映射为Group,shape映射为species,同时展示两个维度的信息
  • 解决点重叠:调整geom_point的alpha透明度参数,或者修改scale_size_continuous的range值缩小点的最大尺寸

内容的提问来源于stack exchange,提问作者i.b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 23:00:01