[R] annotation help in ggplot2
Moshiur Rahman
mr@hm@nku|mrt @end|ng |rom gm@||@com
Fri Sep 20 13:15:18 CEST 2019
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
>
--
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
[[alternative HTML version deleted]]
More information about the R-help
mailing list