Dear ggplot2 experts, I'm struggling to make a plot having family id in x-axis and female id below that family id where each 4 families have a single female id.
I also need to add male id on top of each bar which I can do before grid.arrange, but fail after doing it. So, any suggestions? Please find below my codes and help me to complete it perfectly. #data data <- read.table("R-help_ggplot2.csv", header=TRUE, sep=",") names(data) #packages library(ggplot2) library(grid) library(gridExtra) library(scales) library(ggpubr) #plot codes p1 = ggplot(data,aes(x=factor(family),y=offs.surv.perct,fill=factor(treat)))+ geom_bar(stat="identity", position="dodge")+ #facet_wrap(~ Female)+ geom_bar(stat="identity", position="dodge", colour="black", show.legend= TRUE) + # show_guide = TRUE gives legend boarder #geom_hline(yintercept=15, size=0.5, linetype = 2)+ ### middle line scale_fill_manual(values=c("grey", "white")) + # grey80 is closer to white than black xlab("Family") + ylab (expression(paste("Offspring survival rate (%)"))) + #coord_cartesian(xlim=c(0,40), ylim=c(0,60), clip="off")+ scale_y_continuous(expand = c(0, 0), limits = c(0, 60))+ theme(legend.title = element_text(colour="black", size=12))+ theme(legend.text = element_text(colour="black", size=11))+ theme(legend.background = element_blank())+ theme(legend.key = element_blank())+ theme(legend.box.background = element_blank())+ theme(legend.key.size = unit(2, "mm"),legend.key.width = unit(0.5,"cm"))+ theme(legend.position=c(0.05,0.9),legend.direction ="vertical",legend.box = "vertical")+ # add legend on top theme(panel.background = element_rect(fill = "transparent"))+ theme(axis.line = element_line(colour = "black"),axis.text.x=element_text(size=10, colour="black"),axis.text.y=element_text(size=10, colour="black"), axis.title.y = element_text(size=12, colour = "black",margin=margin(0,5,0,0)), axis.title.x = element_blank(), strip.text.x = element_blank(),# remove top level title (high and low) strip.background = element_blank(),# remove top level background panel.grid.major = element_blank(),# remove grid line within the plot panel.grid.minor = element_blank(), panel.border = element_blank()) p1 ### legend correction p2<- p1 + guides(fill = guide_legend(title="Fertilization group",keywidth = 1,keyheight = 1, title.theme = element_text(size=12, colour = "black", angle = 0)))+ theme(legend.text = element_text(size = 12, colour = "black", angle = 0)) p2 ###plot margins p3<-p2+theme(plot.margin = unit(c(1,1,1.7,1), "lines")) p3 #x-axis label p4<-grid.arrange( p3, bottom = textGrob( "Family and female number", gp = gpar(fontsize = 12, cex=1), #fontface = "bold", vjust = 0.5, hjust = 0.5,x = 0.52)) # annotation (NOT WORKING) p5<-p4+annotate("text", label = "M1", x = 1, y = 25.03, fontface = 1, size=3,angle = 90) p5 p6<-p5+annotate("text", label = "M2", x = 2, y = 18.37, fontface = 1, size=3,angle = 90) p6 p7<-p6+annotate("text", label = "M3", x = 3, y = 21.7, fontface = 1, size=3,angle = 90) p7 p8<-p7+annotate("text", label = "M1-2-3", x = 4, y = 19.1, fontface= 1, size=3,angle = 90) p8 Fig1.1<-p8+annotate("segment", size=0.3, x=c(1,1,4),xend=c(1,4,4), y= c(26,28,28), yend=c(28,28,21))+ annotate("text",x=2.45,y=29.5,fontface = 1, size=3,angle = 90,label=c("F1")) Fig1.1 Please find attached also my data. Any assistance will be highly appreciated. Regards, Moshi JSPS Postdoctoral Fellow Laboratory of Population Biology Department of Marine Biosciences Graduate School of Marine Science and Technology Tokyo University of Marine Science and Technology 4-5-7 Konan, Minato-ku, Tokyo 108-8477, Japan Mobile: 050-6874-9072 ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.