[R] Polishing my geom_bar for publication

Aurelie Cosandey Godin GodinA at Dal.Ca
Sun Dec 4 18:37:54 CET 2011


Sorry Dennis,
Didn't realized I went off the list!
I found a solution for one of my problem: removing x-axis label!

with this code: ggplot(Final2, aes(x=spp, y=WPUE, fill=season)) + geom_bar(position=position_dodge()) + geom_errorbar(aes(ymin=WPUE-wpue.se, ymax=WPUE+wpue.se),  size=.3,width=.2,position=position_dodge(.9)) + scale_x_discrete("", breaks=c("102","90","91","94","96"), labels= rep("", 5)) + ylab("Biomass (Weight (kg)/tow)") + scale_fill_grey(name="Survey season", breaks=c("summer", "winter"), labels=c("Spring", "Fall"))+ coord_flip() + theme_bw() + opts(axis.title.x = theme_text(size = 10), panel.grid.minor = theme_blank())

However, I am still trying to figure out how to fix the width of my two plots on my final pdf. I would appreciate any help on this! Thank you.



On 2011-12-04, at 12:59 PM, Aurelie Cosandey Godin wrote:

> Thank you Denis,
> 
> I changed my code as you suggested, however the "xlab" didn't work & I tried something else (see below my new code), but I still get my labels for my x-axis (coord_flip) in my b figure ("spp" 96, 94, 91, etc...). See figure below.
> To answer your question, I would like that both of my figure a & b have the same width on the final pdf. Right now they aren't because of the legend.
>> 
>> and (3) fix the width, such that both figures
>>> have the same appearance regardless of the legend.
>> 
>> I'm afraid I don't understand clearly what you mean my 'same
>> appearance'. Could you provide a reproducible example, which includes
>> (possibly fake) data as well as code?
> 
> 
> 
> Here's my new code:
> 
> (a<- ggplot(Final2, aes(x=spp, y=CPUE, fill=season)) +
> geom_bar(position=position_dodge()) +
> geom_errorbar(aes(ymin=CPUE-cpue.se, ymax=CPUE+cpue.se),
>  size=.3,                    width=.2,
> position=position_dodge(.9)) +    scale_x_discrete("Species",
> breaks=c("102","90","91","94","96"),
> labels=c("SPINYTAIL","THORNY","SMOOTH","DEEPWATER","JENSEN'S")) + ylab("Abundance (fish/tow)")  + coord_flip() +
>  scale_fill_grey() + theme_bw() + opts(axis.title.x =
> theme_text(size = 10), panel.grid.minor = theme_blank(),
> legend.position='none') )
> 
> ##I added scale_x_discrete(NULL, breaks=c("102","90","91","94","96"), labels= rep(NULL, 5)) thinking that this would be able to remove my x-axis label (coord_flip) but it didn't... any other ideas of how I can achieve this?
> 
> (b<- ggplot(Final2, aes(x=spp, y=WPUE, fill=season)) + geom_bar(position=position_dodge()) + geom_errorbar(aes(ymin=WPUE-wpue.se, ymax=WPUE+wpue.se),  size=.3,width=.2,position=position_dodge(.9)) + scale_x_discrete(NULL, breaks=c("102","90","91","94","96"), labels= rep(NULL, 5)) + ylab("Biomass (Weight (kg)/tow)") + scale_fill_grey(name="Survey season", breaks=c("summer", "winter"), labels=c("Spring", "Fall"))+ coord_flip() + theme_bw() + opts(axis.title.x = theme_text(size = 10), panel.grid.minor = theme_blank()) )
> 
> pdf("polishing-layout3.pdf", width = 10, height = 6)
> grid.newpage()
> pushViewport(viewport(layout = grid.layout(1, 2)))
> vplayout <- function(x, y)
>  viewport(layout.pos.row = x, layout.pos.col = y)
> print(a, vp = vplayout(1, 1))
> print(b, vp = vplayout(1, 2))
> dev.off()
> 
> <PastedGraphic-2.pdf>
> 
> Thank you very much!
> Aurelie
> 
> On 2011-12-04, at 11:33 AM, Dennis Murphy wrote:
> 
>> Hi:
>> 
>> On Sun, Dec 4, 2011 at 5:21 AM, Aurelie Cosandey Godin <GodinA at dal.ca> wrote:
>>> Dear list,
>>> 
>>> I am new with ggplot2 and I have spend quiet some time putting together the
>>> following code to create the attached plot. However there's still a few
>>> things that I'm having trouble with!
>>> I would be grateful if someone can tell me how to fix (1) the colour of my
>>> bars into grey scales
>> 
>> One way is to provide greyscale values to scale_fill_discrete; e.g.,
>>    values = c("grey50","grey20")
>> 
>>> (2) removing the y-axis (species name) on the right
>>> figure to avoid duplication,
>> 
>> In the second figure, insert either
>>   ylab("")
>> or if you have a labs() statement that defines several titles at once,
>>   labs(..., y = "", ...)
>> 
>> and (3) fix the width, such that both figures
>>> have the same appearance regardless of the legend.
>> 
>> I'm afraid I don't understand clearly what you mean my 'same
>> appearance'. Could you provide a reproducible example, which includes
>> (possibly fake) data as well as code?
>> 
>> Dennis
>>> 
>>> Thank you very much in advance!
>>> 
>>> --
>>> You received this message because you are subscribed to the ggplot2 mailing
>>> list.
>>> Please provide a reproducible example: http://gist.github.com/270442
>>> 
>>> To post: email ggplot2 at googlegroups.com
>>> To unsubscribe: email ggplot2+unsubscribe at googlegroups.com
>>> More options: http://groups.google.com/group/ggplot2
>>> 
>>> 
>>> The code is as follow:
>>> 
>>> 
>>> (a<-ggplot(Final2, aes(x=spp, y=CPUE, fill=season)) +
>>>    geom_bar(position=position_dodge()) +
>>>    geom_errorbar(aes(ymin=CPUE-cpue.se, ymax=CPUE+cpue.se),
>>>                  size=.3,
>>>                  width=.2,
>>>                  position=position_dodge(.9)) +
>>>    xlab("Species") +
>>> scale_x_discrete(breaks=c("100","102","107","88","90","91","92","93","94","96","98","99"),
>>> labels=c("WINTER","SPINYTAIL","BIGELOW'S","SKATES
>>> (NS)","THORNY","SMOOTH","ABYSSAL","LITTLE","DEEPWATER","JENSEN'S","WHITE","SOFT"))
>>> +
>>>    ylab("Abundance (fish/tow)")  + coord_flip() +
>>>    theme_bw() + opts(axis.title.x = theme_text(size = 10)) +
>>> opts(panel.grid.minor = theme_blank()) + opts(legend.position='none') )
>>> 
>>> (b<-ggplot(Final2, aes(x=spp, y=WPUE, fill=season)) +
>>>    geom_bar(position=position_dodge()) +
>>>    geom_errorbar(aes(ymin=WPUE-wpue.se, ymax=WPUE+wpue.se),
>>>                  size=.3,
>>>                  width=.2,
>>>                  position=position_dodge(.9)) + xlab(NULL)+
>>> scale_x_discrete(breaks=c("100","102","107","88","90","91","92","93","94","96","98","99"),
>>> labels=c("WINTER","SPINYTAIL","BIGELOW'S","SKATES
>>> (NS)","THORNY","SMOOTH","ABYSSAL","LITTLE","DEEPWATER","JENSEN'S","WHITE","SOFT"))+
>>>    ylab("Biomass (Weight (kg)/tow)") + scale_fill_hue(name="Survey season",
>>> # Legend label, use darker colors
>>>                   breaks=c("summer", "winter"),
>>>                   labels=c("Spring", "Fall")) + coord_flip() +
>>>    theme_bw() + opts(axis.title.x = theme_text(size = 10)) +
>>> opts(panel.grid.minor = theme_blank()))
>>> 
>>> pdf("polishing-layout2.pdf", width = 10, height = 6)
>>> grid.newpage()
>>> pushViewport(viewport(layout = grid.layout(1, 2)))
>>> vplayout <- function(x, y)
>>>  viewport(layout.pos.row = x, layout.pos.col = y)
>>> print(a, vp = vplayout(1, 1))
>>> print(b, vp = vplayout(1, 2))
>>> dev.off()
>>> 
>>> 
>>> Aurelie Cosandey-Godin
>>> Ph.D. student, Department of Biology
>>> Industrial Graduate Fellow, WWF-Canada
>>> 
>>> Dalhousie University | Biology Dept. | 1459 Oxford Street |
>>> Halifax, NS |
>>> Canada
>>> B3H 4R2
>>> 
>>> Phone: 1-902-494-2478 |
>>> cell: 1-902-412-3404 |
>>> Fax: 1-902-494-3736
>>> Email: godina at dal.ca | Skype: aureliegodinco |
>>> Web: wormlab.biology.dal.ca
>>> ----------------------------------------------------------------------------------------------------------------------------------------------------
>>> Want to learn more about sharks in Atlantic Canada? Visit
>>> ShARCC! www.atlanticsharks.org
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> -- 
>> You received this message because you are subscribed to the ggplot2 mailing list.
>> Please provide a reproducible example: http://gist.github.com/270442
>> 
>> To post: email ggplot2 at googlegroups.com
>> To unsubscribe: email ggplot2+unsubscribe at googlegroups.com
>> More options: http://groups.google.com/group/ggplot2
>> 
> 



More information about the R-help mailing list