ggplot结合envfit绘制NMDS图箭头比例失调求助
用ggplot绘制NMDS图添加envfit时箭头比例失调的问题
我在用ggplot绘制NMDS图并添加envfit结果时,遇到箭头过小、比例失调的问题,和Stack Exchange上相关帖子的问题一致,但因声望不足无法评论。

以下是我的代码:
df = read.csv("df.csv", header = TRUE) com = df[,10:11] # 第10和11列是NMDS得分 env = pc[,2:9] # 第2到9列是环境变量 en = envfit(com, env, permutations = 9999, na.rm = TRUE) en en_coord_cont = as.data.frame(scores(en, "vectors")) * ordiArrowMul(en) en_coord_cat = as.data.frame(scores(en, "factors")) * ordiArrowMul(en) com$Cluster = pc$Cluster gg = ggplot(data = com, aes(x = Axis1B, y = Axis2B)) + geom_point(data = com, aes(colour = Cluster), size = 3, alpha = 0.5) + scale_colour_manual(values = c("#CBCBCB", "#616161", "#000000")) + geom_segment(aes(x = 0, y = 0, xend = Axis1B, yend = Axis2B), data = en_coord_cont, size =1, alpha = 0.5, colour = "grey30") + geom_text(data = en_coord_cont, aes(x = Axis1B, y = Axis2B), colour = "grey30", fontface = "bold", label = row.names(en_coord_cont)) + theme(panel.background = element_blank(), panel.border = element_rect(fill = NA, colour = "grey30"), axis.text = element_text(size = 12), legend.key = element_blank(), legend.title = element_text(size = 14, face = "bold", colour = "black"), legend.text = element_text(size = 9, colour = "black")) gg
我可以通过在en_coord_cont = as.data.frame(scores(en, "vectors")) * ordiArrowMul(en)中额外乘以一个整数(比如*2)来拉长箭头,但我知道ordiArrowMul(en)本应计算出合适的箭头长度,不想随意用随机倍数调整。
我已经按照建议安装了ggvegan,但不清楚它的用法。想请教:是否应该使用autoplot()命令来处理?能不能把已经创建好的ggplot对象gg直接导入ggvegan中使用?
内容的提问来源于stack exchange,提问作者user20796953
相关产品推荐
相关产品推荐

