For the simplist of the issues use scale_shape(solid = FALSE) to get hollow points Using your data (below) this seems to work p1 <- ggplot(SummAB, aes(factor3, mean, colour = factor1, group = factor1,shape = factor1)) + scale_y_continuous(guide_legend(legend.position=c(4 ,6))) + scale_shape(solid = FALSE) + guides(colour = guide_legend(title.position = "right")) + 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
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. ____________________________________________________________ Receive Notifications of Incoming Messages Easily monitor multiple email accounts & access them with a click. Visit http://www.inbox.com/notifier and check it out! ______________________________________________ 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.