繁体   English   中英

geom_bars下面的重要字母

[英]Significant letters beneath geom_bars

这是iris数据集的条形图。 每个条上方的字母表示从kruskal-wallis测试获得的显着差异。 在此处输入图片说明 尽管在此示例图上它们不太混乱,但我的真实数据具有更大的误差线和长度差异。 这样,字母无处不在,很难阅读。 我想知道是否可以将字母放在每个条形图的正下方,正好位于x轴的上方。 这样,它们将全部对齐并易于阅读。 你算什么?

码:

library(reshape2)
library(ggplot2)
library(agricolae)
library(Rmisc)

file<-iris

melt <- melt(file, id=c("Species"))

x1 <- summarySE(melt, measurevar = "value", groupvars = c("variable", "Species"), na.rm=TRUE)

d=list()
tmp=list()

for(i in 1:4){
  if(var(file[,i]) > 0){
    tmp<-c(tmp,colnames(file[i]))
    krusk <- kruskal(file[,i],file[,5],group=TRUE)
    krusk$groups<-krusk$groups[order(krusk$groups[,'trt']),]
    d[[i]]<-as.data.frame(krusk$groups)       
  }
} 

big_data=do.call(rbind,d)

plot<- ggplot(x1, aes(x = variable, y = value, fill = Species)) + 
  coord_flip()+
  geom_bar(stat = "identity", position =position_dodge(),colour="black",width=.7,size=.5)+ 
  geom_errorbar(aes(ymin=value-se, ymax=value+se), width=.1,size=.5,position=position_dodge(.7))+
  theme(
    axis.text = element_text(angle=0, vjust=1,size=8,face="bold"),legend.title=element_blank(),legend.position="bottom",
    legend.text=element_text(face="italic"))+
  labs(title=NULL,x=NULL,y=NULL)+
  geom_text(aes(label=big_data$M,colour=Species),position=position_dodge(width=1),vjust=.8,hjust=-1,size=3)

plot

像这样:
对于geom_text ,将y = 0设置y = 0 hjust = 1.5
请注意,条形图,误差线和文本的闪避宽度是相同的。 还要注意,条的宽度等于躲避宽度,因此,条在每个变量中彼此对接。

plot <- ggplot(x1, aes(x = variable, y = value, fill = Species)) + 
  coord_flip() +
  geom_bar(stat = "identity", position = position_dodge(width = .7),
     colour = "black", width = .7, size = .5) + 
  geom_errorbar(aes(ymin = value-se, ymax = value+se), position=position_dodge(width = .7),
     width = .1, size = .5) +
  geom_text(aes(y = 0, label = big_data$M, colour = Species), 
     position=position_dodge(width = .7), hjust = 1.5, size = 3) +
  theme(
    axis.text = element_text(angle=0, vjust=1,size=8,face="bold"),legend.title=element_blank(),legend.position="bottom",
    legend.text=element_text(face="italic")) +
  labs(title=NULL,x=NULL,y=NULL)

plot

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM