Here is the solution inspired by this post https://stackoverflow.com/questions/18165863/multirow-axis-labels-with-nested-grouping-variables
> data$Female <- factor(data$Female, levels = c("F1","F2","F3","F4","F5","F6","F7","F8","F9","F10")) > ggplot(data,aes(x=family,y=offs.surv.perct,fill=treat))+geom_bar(stat="identity", position="dodge")+ geom_text(aes(label = MID), angle=90)+ facet_wrap(~Female, strip.position = "bottom", scales = "free_x",nrow=1)+ theme(panel.spacing = unit(0, "lines"), strip.background = element_blank(), strip.placement = "outside") On Fri, Sep 20, 2019 at 11:51 AM Moshiur Rahman <mrahmankuf...@gmail.com> wrote: > Thanks Rishi, > > Please find attached the data herewith. > > > > On Fri, Sep 20, 2019 at 5:48 PM ঋষি ( ऋषि / rIsHi ) < > rishi.das...@gmail.com> wrote: > >> There are no attached data . >> >> On Fri, Sep 20, 2019 at 11:40 AM Moshiur Rahman <mrahmankuf...@gmail.com> >> wrote: >> >>> 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. >>> >> >> >> -- >> >> >> >> With regards >> Rishi Das Roy >> > > > -- > Md. Moshiur Rahman, PhD > > 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 > > ......................... > > Professor > Fisheries and Marine Resource Technology Discipline > Khulna University, Khulna - 9208 > BANGLADESH. > Google scholar: > https://scholar.google.com.au/citations?user=uElrJSsAAAAJ&hl=en > ResearchGate: https://www.researchgate.net/profile/Md_Moshiur_Rahman2 > ORCID: https://orcid.org/my-orcid > -- With regards Rishi Das Roy [[alternative HTML version deleted]] ______________________________________________ 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.