改写;scores(nmds)$sites %>% cbind(df) %>% ggplot(aes(x = NMDS1, y = NMDS2)) + geom_point(aes(size = 0.5, color = Group)) + stat_chull(geom = "polygon", aes(group = Group, color = Group, fill = Group), alpha = 0.1) + annotate("text", x = -0.15, y = 0.1, label = paste0("stress: ", format(nmds$stress, digits = 4)), hjust = 0) + theme_bw(base_size = 18)+ theme(text=element_text(family="A",size=20)),不使用$得到相同结果
时间: 2024-03-11 07:51:23 浏览: 117
可以使用`extract()`函数来从分析结果对象中提取所需的元素。下面是使用`extract()`函数重新编写代码的例子:
```R
nmds_scores <- extract(scores(nmds), "sites")
nmds_df <- cbind(nmds_scores, df)
ggplot(nmds_df, aes(x = NMDS1, y = NMDS2)) +
geom_point(aes(size = 0.5, color = Group)) +
stat_chull(geom = "polygon", aes(group = Group, color = Group, fill = Group), alpha = 0.1) +
annotate("text", x = -0.15, y = 0.1, label = paste0("stress: ", format(nmds$stress, digits = 4)), hjust = 0) +
theme_bw(base_size = 18) +
theme(text = element_text(family = "A", size = 20))
```
这个代码与原始代码的作用是相同的,但使用`extract()`函数来代替了$符号,以便从NMDS分析结果对象中提取所需的元素。
相关问题
修改下面的代码:nmds <- metaMDS(select(df, starts_with("OTU"))) str(nmds) scores(nmds)$sites %>% cbind(df) %>% ggplot(aes(x = NMDS1, y = NMDS2)) + geom_point(aes(size = 0.5, color = Group)) + stat_chull(geom = "polygon", aes(group = Group, color = Group, fill = Group), alpha = 0.1) + annotate("text", x = -0.15, y = 0.1, label = paste0("stress: ", format(nmds$stress, digits = 4)), hjust = 0) + theme_bw(base_size = 18)+ theme(text=element_text(family="A",size=20))
这段代码是一个简单的NMDS分析和绘图的代码,如果你想对其进行修改,可以考虑以下方面:
1. 数据处理:这段代码中使用了select函数从数据框df中选择以"OTU"开头的列进行分析,你可以根据你的数据框的实际情况修改这个参数。例如,如果你的数据框中的列名包含其他字符串,可以将"OTU"改为其他字符串。
2. 绘图:这段代码中使用了ggplot2包绘制NMDS分析结果的散点图和多边形边界图。你可以根据你的需要修改绘图参数,例如修改点的大小、颜色和形状,修改多边形的透明度和填充色等等。
3. 分析方法:这段代码中使用了vegan包中的metaMDS函数进行NMDS分析,你可以根据需要选择其他方法或改变参数。例如,你可以使用其他包中的函数进行NMDS分析,或者设置不同的维数和距离度量方法。
以下是修改后的代码示例:
```
# 读取数据
df <- read.csv("mydata.csv", header = TRUE)
# nmds分析
nmds <- metaMDS(df, distance = "bray", k = 2)
# 绘图
scores(nmds)$sites %>%
cbind(df) %>%
ggplot(aes(x = NMDS1, y = NMDS2)) +
geom_point(aes(size = 2, color = Group, shape = Treatment)) +
stat_ellipse(aes(color = Group, fill = Treatment), geom = "polygon", alpha = 0.2) +
scale_color_brewer(palette = "Set1") +
scale_fill_brewer(palette = "Set2") +
theme_bw(base_size = 18) +
theme(text=element_text(family="A",size=20))
```
这里使用了bray距离度量和2维的NMDS分析方法,同时对点的大小、颜色和形状进行了修改,添加了椭圆边界和调整了调色板。请根据你的实际情况进行适当的修改。
library(tidyverse) library(vegan) library(ggpubr) #设置新罗马字体 windowsFonts(A=windowsFont("Times New Roman"), B=windowsFont("Arial")) #读取数据 setwd("D:/R") df <- read.csv("NMDS.csv",header = T) #nmds分析 nmds <- metaMDS(select(df, starts_with("OTU"))) str(nmds) scores(nmds)$sites %>% cbind(df) %>% ggplot(aes(x = NMDS1, y = NMDS2)) + geom_point(aes(size = 0.5, color = Group)) + stat_chull(geom = "polygon", aes(group = Group, color = Group, fill = Group), alpha = 0.1) + annotate("text", x = -0.15, y = 0.1, label = paste0("stress: ", format(nmds$stress, digits = 4)), hjust = 0) + theme_bw(base_size = 18)+ theme(text=element_text(family="A",size=20))
这段代码是一段NMDS分析的代码,如果你想修改这段代码,可以根据你的具体需求进行修改,以下是一些可能的修改建议:
1. 修改文件路径:根据你的数据存储位置,修改以下代码中的路径:
```
setwd("D:/R")
df <- read.csv("NMDS.csv",header = T)
```
2. 修改绘图参数:根据你的绘图需求,修改以下代码中的绘图参数,如颜色、点的大小、字体等等:
```
geom_point(aes(size = 0.5, color = Group)) + # 修改点的大小和颜色
annotate("text", x = -0.15, y = 0.1, label = paste0("stress: ", format(nmds$stress, digits = 4)), hjust = 0) + # 修改注释的位置和字体
theme_bw(base_size = 18)+ # 修改字体大小
theme(text=element_text(family="A",size=20)) # 修改字体类型和大小
```
3. 修改分析方法:根据你的分析需求,修改以下代码中的分析方法和参数:
```
nmds <- metaMDS(select(df, starts_with("OTU")))
```
这里使用了vegan包中的metaMDS函数进行NMDS分析,你可以根据需要选择其他方法或改变参数。
希望这些修改建议对你有所帮助。
阅读全文