Dear John,

thank you so much for your time! The tip regarding the position of the 
legend was extremely useful:
theme(legend.position = c(.5, .5)

Also, how to get the shape fill hollow:
scale_shape(solid = FALSE)

your long script helped me with several issues that I have had particularly 
tweaking grid.arrange. This will come in handy!

With kind regards

Anna Zakrisson Braeunlich
PhD student

Department of Ecology Environment and Plant Sciences
Stockholm University
Svante Arrheniusv. 21A
SE-106 91 Stockholm
Sweden

Lives in Berlin.
For paper mail:
Katzbachstr. 21
D-10965, Berlin - Kreuzberg
Germany/Deutschland

E-mail: anna.zakris...@su.se
Tel work: +49-(0)3091541281
Mobile: +49-(0)15777374888
LinkedIn: http://se.linkedin.com/pub/anna-zakrisson-braeunlich/33/5a2/51b

><((((º>`•. . • `•. .• `•. . ><((((º>`•. . • `•. .• 
`•. .><((((º>`•. . • `•. .• `•. .><((((º>

-----Original Message-----
From: John Kane <jrkrid...@inbox.com>
To: Anna Zakrisson <a...@ecology.su.se>, "r-help@r-project.org" 
<r-help@r-project.org>
Date: Wed, 6 Mar 2013 11:16:28 -0800
Subject: RE: [R] Ggplot2: Moving legend, change fill and removal of space 
between plots when using grid.arrange() possible use of facet_grid?

Placing a legend.  

 z <- ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) + geom_point()
  z + theme(legend.position = c(.5, .5))
 
Currently this does not appear to work in RStudio but seems fine if I use 
gedit or if I run R in a terminal session.  

John Kane
Kingston ON Canada


> -----Original Message-----
> From: a...@ecology.su.se
> Sent: Wed, 06 Mar 2013 13:32:42 +0100
> To: r-help@r-project.org
> Subject: [R] Ggplot2: Moving legend, change fill and removal of space
> between plots when using grid.arrange() possible use of facet_grid?
>
> Hi,
>
> # For publications, I am not allowed to repeat the axes. I have tried to
> remove the axes using:
> # yaxt="n", but it did not work. I have not understood how to do this in
> ggplot2. Can you help me?
> # I also do not want loads of space between the graphs (see below script
> with Dummy Data).
> # If I could make it look like the examples on the (nice) examples page:
> # http://www.ling.upenn.edu/~joseff/rstudy/summer2010_ggplot2_intro.html
> # using the facet_grid(), I would be very very happy.
>
> # I also do not want the gemoetric points to be filled and the
> fill="white"
> commande
> # does not seem to work - why? and are there alternatives?
>
> #Furthermore, I would like to add legends to inside the plot area instead
> of
> on the side. Like when you use plotrix() and brkdn.plot:
> legend("topright", c("A", "B"), pch=c(0,1), bg="white",
>        lty = 1:2, cex=1, bty="n")
> # This did not work in ggplot2. What are my alternatives. I have
> extensively
> searched the internet and have I missed something obvious, it was due to
>    # tiredness and not to lazyness.
>
> # Some dummy data:
> mydata<- data.frame(factor1 = factor(rep(LETTERS[1:6], each = 80)),
>                   factor2 = factor(rep(c(1:5), each = 16)),
>                   factor3 = factor(rep(c(1:4), each = 4)),
>                   var1 = rnorm(120, mean = rep(c(0, 3, 5), each = 40),
>                   sd = rep(c(1, 2, 3), each = 20)),
>                   var2 = rnorm(120, mean = rep(c(6, 7, 8), each = 40),
>                   sd = rep(c(1, 2, 3), each = 20)))
>
>
> # Splitting data into 3 data frames (based on factor1)
> # If I could do this using for example facet_wrap() or facet_grid(), I
> would
> be very
> # happy! I have tried but failed that method.
>
> DataAB <- mydata[(mydata$factor1) %in% c("A", "B"), ]
> DataCD <- mydata[(mydata$factor1) %in% c("C", "D"), ]
> DataEF <- mydata[(mydata$factor1) %in% c("E", "F"), ]
> DataAB
> library(plyr)
> library(ggplot2)
>
> #Plot: levels A and B:
> # Summary (means etc)
> SummAB  <-   ddply(DataAB, .(factor3,factor1), summarize,
>                        mean = mean(var1, na.rm = FALSE),
>                        sdv = sd(var1, na.rm = FALSE),
>                        se = 1.96*(sd(var1,
> na.rm=FALSE)/sqrt(length(var1))))
> SummAB
> p1  <-  ggplot(SummAB, aes(factor3, mean,
>                                colour = factor1, group = factor1,
>                                shape = factor1)) +
>   geom_point(aes(shape=factor(factor1)), color="black", fill="white",
>              position = "dodge", width = 0.3, size=3) +
>   geom_line(aes(linetype=factor1), color = "black", size = 0.5) +
>   geom_errorbar(aes(ymin = mean - sdv , ymax = mean + sdv), width = 0.3,
>                 position = "dodge", color = "black", size=0.3) +
>   theme_bw() +
>   ylab(expression(paste("my measured stuff"))) +
>   xlab("factor3") + ggtitle("") +
>   labs(color = "factor1", shape = "factor1", group = "factor1",
>        linetype = "factor1")
> p1
>
> #Plot: levels C and D:
> # Summary (means etc)
> SummCD  <-   ddply(DataCD, .(factor3,factor1), summarize,
>                    mean = mean(var1, na.rm = FALSE),
>                    sdv = sd(var1, na.rm = FALSE),
>                    se = 1.96*(sd(var1, na.rm=FALSE)/sqrt(length(var1))))
>
> p2  <-  ggplot(SummCD, aes(factor3, mean,
>                            colour = factor1, group = factor1,
>                            shape = factor1)) +
>   geom_point(aes(shape=factor(factor1)), color="black", fill="white",
>              position = "dodge", width = 0.3, size=3) +
>   geom_line(aes(linetype=factor1), color = "black", size = 0.5) +
>   geom_errorbar(aes(ymin = mean - sdv , ymax = mean + sdv), width = 0.3,
>                 position = "dodge", color = "black", size=0.3) +
>   theme_bw() +
>   ylab(expression(paste("my measured stuff"))) +
>   xlab("factor3") + ggtitle("") +
>   labs(color = "factor1", shape = "factor1", group = "factor1",
>        linetype = "factor1")
> p2
>
> #Plot: levels C and D:
> # Summary (means etc)
> SummEF  <-   ddply(DataEF, .(factor3,factor1), summarize,
>                    mean = mean(var1, na.rm = FALSE),
>                    sdv = sd(var1, na.rm = FALSE),
>                    se = 1.96*(sd(var1, na.rm=FALSE)/sqrt(length(var1))))
>
> p3  <-  ggplot(SummEF, aes(factor3, mean,
>                            colour = factor1, group = factor1,
>                            shape = factor1)) +
>   geom_point(aes(shape=factor(factor1)), color="black", fill="white",
> #Why
> is the fill commando not working?
>              position = "dodge", width = 0.3, size=3) +
>   geom_line(aes(linetype=factor1), color = "black", size = 0.5) +
>   geom_errorbar(aes(ymin = mean - sdv , ymax = mean + sdv), width = 0.3,
>                 position = "dodge", color = "black", size=0.3) +
>   theme_bw() +
>   ylab(expression(paste("my measured stuff"))) +
>   xlab("factor3") + ggtitle("") +
>   labs(color = "factor1", shape = "factor1", group = "factor1",
>        linetype = "factor1")
> p3
>
> ary(gridExtra)
> sidebysideplot <- grid.arrange(p1, p2, p3, ncol=2)
>
>
> Anna Zakrisson Braeunlich
> PhD student
>
> Department of Ecology Environment and Plant Sciences
> Stockholm University
> Svante Arrheniusv. 21A
> SE-106 91 Stockholm
> Sweden
>
> Lives in Berlin.
> For paper mail:
> Katzbachstr. 21
> D-10965, Berlin - Kreuzberg
> Germany/Deutschland
>
> E-mail: anna.zakris...@su.se
> Tel work: +49-(0)3091541281
> Mobile: +49-(0)15777374888
> LinkedIn: http://se.linkedin.com/pub/anna-zakrisson-braeunlich/33/5a2/51b
>
> ><((((B:>`b?". . b?" `b?". .b?" `b?". . ><((((B:>`b?". . b?" `b?". .b?"
> `b?". .><((((B:>`b?". . b?" `b?". .b?" `b?". .><((((B:>
>
>    [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@r-project.org mailing list
> 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.

____________________________________________________________
FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas on your 
desktop!




        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
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.

Reply via email to