R语言线性加平台拟合及可视化:不同Hybrid的Yield与N关系分析
假设数据框dat如下:
dat <- data.frame(N = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
Hybrid = c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
Yield = c(10, 12, 14, 8, 9, 11, 15, 16, 18, 19))
我们可以使用ggplot2和dplyr包来完成这个任务。
首先,我们需要计算每个Hybrid的Yield和N之间的线性加平台拟合方程,可以使用dplyr的group_by和do函数来实现:
library(dplyr)
fit_func <- function(df) {
lm(Yield ~ N, data = df)
}
dat_fit <- dat %>%
group_by(Hybrid) %>%
do(model = fit_func(.))
这里,我们定义了一个fit_func函数,它接受一个数据框作为输入,并返回该数据框的线性模型对象。然后,我们使用group_by将数据框按照Hybrid分组,并使用do函数将每个分组应用于fit_func函数,得到每个Hybrid的线性模型对象。
接下来,我们可以使用ggplot2来可视化每个Hybrid的Yield和N之间的线性加平台拟合方程。我们可以使用geom_smooth函数来拟合每个Hybrid的线性模型,并使用annotate函数来标注每个Hybrid的拟合方程:
library(ggplot2)
ggplot(dat, aes(x = N, y = Yield, color = Hybrid)) +
geom_point() +
facet_wrap(~Hybrid) +
geom_smooth(data = dat_fit, method = "lm", se = FALSE, size = 1.5) +
theme_bw() +
labs(x = "N", y = "Yield") +
theme(legend.position = "none") +
annotate(geom = "text", x = 1, y = 20, label = "Yield = a + b*N", size = 4, hjust = 0, vjust = 0)
这里,我们使用facet_wrap函数将不同Hybrid的数据分别显示在不同的子图中。然后,我们使用geom_smooth函数来拟合每个Hybrid的线性模型,并使用se = FALSE参数来禁用置信区间的绘制,使用size参数来调整拟合线的粗细。最后,我们使用annotate函数来标注每个Hybrid的拟合方程,其中x和y参数指定文本的位置,label参数指定文本的内容,size参数指定文本的大小,hjust和vjust参数指定文本的水平和垂直对齐方式。
运行上述代码,我们可以得到一个可视化的结果,其中每个Hybrid的Yield和N之间的线性加平台拟合方程被标注在图中:

原文地址: https://www.cveoy.top/t/topic/mx25 著作权归作者所有。请勿转载和采集!