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.