[R] annotation help in ggplot2

Jeff Newmiller jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Fri Sep 20 15:26:53 CEST 2019


Using this list as a labor pool to procure code for generating publication-quality plots is abuse. Please read the Posting Guide and the documentation for the ggplot package or go pay someone offlist for their services.

On September 20, 2019 4:15:18 AM PDT, Moshiur Rahman <mrahmankufmrt using gmail.com> wrote:
>Thanks a lot Rishi for your very cordial effort and great help. But
>still I
>need some help to improve it as the plot doesn't clearly depict which
>female belongs to which family and this can be detected by drawing a
>line
>from 1-4 for F1, 5-8 for F2....
>
>Another problem I can see that the position of MID (P1,2,3...) is not
>looking well which are somehow noisy.
>
>Finally, can we drop the bars at the bottom of x-axis that I did
>with scale_y_continuous?
>
>Please do me some favour to complete this plot which I need for a
>publication.
>
>With kind regards,
>
>Moshi
>
>On Fri, Sep 20, 2019 at 7:45 PM ঋষি ( ऋषि / rIsHi )
><rishi.dasroy using gmail.com>
>wrote:
>
>> 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
><mrahmankufmrt using gmail.com>
>> wrote:
>>
>>> Thanks Rishi,
>>>
>>> Please find attached the data herewith.
>>>
>>>
>>>
>>> On Fri, Sep 20, 2019 at 5:48 PM ঋষি ( ऋषि / rIsHi ) <
>>> rishi.dasroy using gmail.com> wrote:
>>>
>>>> There are no attached data .
>>>>
>>>> On Fri, Sep 20, 2019 at 11:40 AM Moshiur Rahman
><mrahmankufmrt using 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 using 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
>>

-- 
Sent from my phone. Please excuse my brevity.



More information about the R-help mailing list