As an example, I have this data frame called my_data :
Groups FactorA FactorB FactorC N value sd se ci 1 Control Condition1 Condition1 Condition1 3 92.00000 6.0827625 3.511885 15.110420 2 Control Condition1 Condition1 Condition2 2 69.00000 8.4852814 6.000000 76.237228 3 Control Condition1 Condition2 Condition1 3 72.33333 10.2632029 5.925463 25.495209 4 Control Condition1 Condition2 Condition2 2 97.00000 2.8284271 2.000000 25.412409 5 Control Condition2 Condition1 Condition1 3 85.00000 13.0000000 7.505553 32.293790 6 Control Condition2 Condition1 Condition2 2 78.50000 16.2634560 11.500000 146.121354 7 Control Condition2 Condition2 Condition1 3 95.00000 5.1961524 3.000000 12.907958 8 Control Condition2 Condition2 Condition2 2 78.00000 22.6274170 16.000000 203.299276 9 Experimental Condition1 Condition1 Condition1 2 80.00000 5.6568542 4.000000 50.824819 10 Experimental Condition1 Condition1 Condition2 3 74.00000 19.9248588 11.503623 49.496093 11 Experimental Condition1 Condition2 Condition1 2 68.50000 0.7071068 0.500000 6.353102 12 Experimental Condition1 Condition2 Condition2 3 78.66667 18.5831465 10.728985 46.163095 13 Experimental Condition2 Condition1 Condition1 2 81.00000 19.7989899 14.000000 177.886866 14 Experimental Condition2 Condition1 Condition2 3 75.33333 17.0391706 9.837570 42.327646 15 Experimental Condition2 Condition2 Condition1 2 81.50000 14.8492424 10.500000 133.415150 16 Experimental Condition2 Condition2 Condition2 3 78.00000 5.2915026 3.055050 13.144821
created using this code
my_data <- data.frame(Groups=c(rep("Control",20),rep("Experimental",20)), FactorA=rep(c("Condition1","Condition2"),20), FactorB=rep(c("Condition1","Condition1","Condition2","Condition2"),10), FactorC=rep(c(rep("Condition1",4),rep("Condition2",4)),5), value=sample(60:100,40,replace=T) ) # add standard errors with a specific function my_data <- summarySE(my_data, measurevar="value", groupvars=c("Groups","FactorA","FactorB", "FactorC"))
Then using this code:
ggplot(my_data, aes(Groups,value,fill=FactorA)) + geom_bar(position=position_dodge(), stat="identity") + geom_errorbar(aes(ymin=value-se, ymax=value+se), width=.1, # Width of the error bars position=position_dodge(.9)) + facet_grid(FactorB~FactorC) + geom_segment(x=0.8,y=100,xend=1.2,yend=100) + theme(axis.text.x=element_text(size=12, colour="black"), axis.title.x=element_blank(), legend.key.size=unit(1,"cm"), legend.text=element_text(size=14), plot.title=element_text(lineheight=.8, face="bold"), panel.margin=unit(1, "lines"), axis.title.y = element_text(size = 16, vjust=0.3), strip.text.y = element_text(size=16,face="bold"), strip.text.x = element_text(size=16,face="bold")) + coord_cartesian(ylim=c(60, 120))
I get this graph

As you can see, with the geom_segment(x=0.8,y=100,xend=1.2,yend=100) line geom_segment(x=0.8,y=100,xend=1.2,yend=100) four segments appear, one for each face, but I want to draw a segment in only one face (for example, in the upper left schedule).
Can someone help me please? I tried various solutions, but nothing.