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
There are no attached data . On Fri, Sep 20, 2019 at 11:40 AM Moshiur Rahman <mrahmankufmrt at 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 at 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 [[alternative HTML version deleted]]
Thanks Rishi, Please find attached the data herewith. On Fri, Sep 20, 2019 at 5:48 PM ??? ( ??? / rIsHi ) <rishi.dasroy at gmail.com> wrote:> There are no attached data . > > On Fri, Sep 20, 2019 at 11:40 AM Moshiur Rahman <mrahmankufmrt at 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 at 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