如何为R语言bar.group绘图正确匹配分组误差棒?
修复agricolae包分组柱状图误差棒错位问题
问题根源
你手动计算的means和standard_errors数据框中,处理组(Treatment)的排序,和bar.group()绘图依赖的lsd.cc$groups里的处理组排序不一致。循环中直接用索引i对应位置,导致误差棒和对应柱子错位。另外,LSD.test()的结果里已经包含了各组均值,完全不需要手动用aggregate()计算,既冗余又容易出错。
修正后的代码
library(agricolae) # 运行LSD检验(确保VC_out是包含Treatment和Rooting_index的数据框) lsd.cc <- LSD.test(VC_out, "Treatment", response = "Rooting_index") # 按LSD结果的处理组顺序,计算对应标准误 standard_errors <- sapply(lsd.cc$groups$Treatment, function(trt) { x <- VC$Rooting_index[VC$Treatment == trt] sd(x)/sqrt(length(x)) }) # 绘制分组柱状图 bar.group(lsd.cc$groups, ylim = c(0, 5)) # 添加误差棒(用LSD结果自带的均值,和匹配好顺序的标准误) for (i in 1:nrow(lsd.cc$groups)) { arrows(i, lsd.cc$groups$Rooting_index[i] - standard_errors[i], i, lsd.cc$groups$Rooting_index[i] + standard_errors[i], angle = 90, code = 3, length = 0.05) } # 添加标题和轴标签 title(main = "Rooting Index by Treatment", xlab = "Treatment", ylab = "Rooting Index")
关键修正点
- 直接使用
LSD.test()返回的lsd.cc$groups$Rooting_index作为均值,避免手动计算带来的顺序偏差 - 基于
lsd.cc$groups里的Treatment顺序,从原始数据中提取对应组计算标准误,保证顺序完全匹配 - 循环时直接对应
lsd.cc$groups的行索引,确保误差棒和柱子一一对应
备选方案(合并数据框统一顺序)
如果坚持保留手动计算的均值/标准误,可以通过合并数据框强制统一顺序:
library(agricolae) # 计算均值和标准误,并重命名标准误列 means <- aggregate(Rooting_index ~ Treatment, data = VC, FUN = mean) standard_errors <- aggregate(Rooting_index ~ Treatment, data = VC, FUN = function(x) sd(x)/sqrt(length(x))) colnames(standard_errors)[2] <- "SE" # 运行LSD检验 lsd.cc <- LSD.test(VC_out, "Treatment", response = "Rooting_index") # 合并数据并按LSD结果的顺序排序 plot_data <- merge(lsd.cc$groups, means, by = "Treatment") plot_data <- merge(plot_data, standard_errors, by = "Treatment") plot_data <- plot_data[match(lsd.cc$groups$Treatment, plot_data$Treatment), ] # 绘图 bar.group(lsd.cc$groups, ylim = c(0, 5)) # 添加误差棒 for (i in 1:nrow(plot_data)) { arrows(i, plot_data$Rooting_index.y[i] - plot_data$SE[i], i, plot_data$Rooting_index.y[i] + plot_data$SE[i], angle = 90, code = 3, length = 0.05) } title(main = "Rooting Index by Treatment", xlab = "Treatment", ylab = "Rooting Index")
内容的提问来源于stack exchange,提问作者Victor Lima
相关产品推荐
相关产品推荐

