0

我用我的数据做了一个ggplot。而不是我想标记我的箱线图数据(通过 anova/Tukey)之间的一些交互以显示特殊组之间是否存在显着差异。我正在使用一个名为“test”的csv-sheet,我已经导入了一个名为“final”的表格

[在此处输入图像描述

[在此处输入图像描述

但是当我使用 TukeyHSD 中的标签绘制数据时,我会得到每个带有空格的标签三元组。

在此处输入图像描述

我怎样才能删除空格。必须有任何解决方案仅在第一个图中显示带有标签的第一条树线,在中间图中显示带有特定标签的中间树线,以及在第三个带有标签的位置显示最后一条树线。如何删除那些带有字母标签的空行?

这是我的代码:

test$int<-interaction(test$geno,test$n)
generate_label_df <- function(TUKEY, variable){
Tukey.levels <- TUKEY[[variable]][,4]
Tukey.labels <- data.frame(multcompLetters(Tukey.levels)['Letters'])
Tukey.labels$int=rownames(Tukey.labels)
Tukey.labels=Tukey.labels[order(Tukey.labels$int) , ]
return(Tukey.labels)
}
model=lm(test$amino~test$int ) ###
ANOVA=aov(model)
TUKEY <- TukeyHSD(x=ANOVA, 'test$int', conf.level=0.95)
labels<-generate_label_df(TUKEY , "test$int")
names(labels)<-c('Letters','int')
yvalue<-aggregate(amino~int, data=test, max)
final<-merge(labels,yvalue) 

ggplot(test, aes(x=int, y=amino)) + 
  stat_boxplot(geom="errorbar") + 
  geom_boxplot(aes(fill=CO2)) + 
  geom_text(data = final, aes(label = Letters, vjust = -0.6)) +
  labs(title = "Aminosäuren Erdkultur", x = "Genotyp", y = "Aminosäurekonz. [µmol/gFW]") +
  scale_x_discrete(labels = c("col.Ammonium" = "col", "sps.Ammonium" = "sps",
                              "swe.Ammonium" = "swe", "col.Nitrat" = "col", 
                              "sps.Nitrat" = "sps", "swe.Nitrat" = "swe",
                              "col.NON" = "col", "sps.NON" = "sps","swe.NON" = "swe"),
                   limits = c("col.Ammonium", "sps.Ammonium", "swe.Ammonium", 
                              "col.Nitrat", "sps.Nitrat","swe.Nitrat", "col.NON", 
                              "sps.NON", "swe.NON") )+
  guides(fill = guide_legend(title = "CO2-Behandlung")) +
  theme(plot.title = element_text(face = "bold", size="17", hjust = "0.5")) +
  scale_fill_manual(values = c("violetred3", "steelblue1")) +
  facet_wrap( ~ n) +
  theme(legend.title = element_text(face = "bold"))

我的第一个意见是,删除“facet_wrap(~n)”。问题解决了,但显然我错过了这种方式的细分

在此处输入图像描述

4

0 回答 0