Hi everyone (again), before you all start screaming that the reordering of factors has been discusse on several threads and is not particular to ggplot2, hear me out. I can easily reorder my x-axis factor in facet.grid() in ggplot2. What I cannot reorder are the factors represented on the strips. I can see that the graphs are changing, so I am afraid of what it is I am doing. Why is ggplot2 not changin the strip labels if indeed the factor-order has been changed? or have I missed to add code defining the factor-labels in the strips. I have not found such code as it has been done automatically from my dataframe using facet.grid() previously. I am simply afraid of displaying the wrong things without noticing it. Here is my code and comments:
I want to have my factor 1 in the order: "F", "E", "C", "D", "A", "B" instead of alphabetical. My normal methods do not work. with kind regards Anna Zakrisson # 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))) # Trying to change the order of my factor1 (same method works for factor3, # which is on th x-axis). Factor1 (A-F) is represented on the different facets # and the factor1 labels can be read off the strips: mydata$factor1 <- factor(mydata$factor1, levels=c("F", "E", "C", "D", "A", "B"), order=T) # summarizing the data with factor1 and factor3: Summ <- ddply(mydata, .(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)))) Summ$Grouping <- c("F", "E", "C", "D", "A", "B")[Summ$factor1] # Trying to order factor 1 accordingly: Summ$factor1 <- factor(Summ$factor1, levels=c("F", "E", "C", "D", "A", "B"), order=T) # plotting: ggplot(Summ, aes(factor3, mean, group = factor1, ymin = mean - sdv , ymax = mean + sdv)) + geom_point(position = position_dodge(width = 0.25), size = 3) + geom_line(position = position_dodge(width = 0.25)) + geom_errorbar(width = 0.3, position = position_dodge(width = 0.25), size = 0.3) + facet_wrap(~Grouping, ncol = 2) + theme(strip.background = element_blank()) + scale_shape(solid = FALSE)+ theme_bw() + ylab(expression(paste("my measured stuff"))) + xlab("factor3") + theme(legend.position="none")+ labs(shape = "factor1", group = "factor1", linetype = "factor1") # What I find really scary is that when excluding the parts: mydata$factor1 <- factor(mydata$factor1, levels=c("F", "E", "C", "D", "A", "B"), order=T) Summ$factor1 <- factor(Summ$factor1, levels=c("F", "E", "C", "D", "A", "B"), order=T) # I actually get a different plot than had I not reordered the factors. # The labels are however still the same. How do I solve this? ### But if I change the factor order for factor 3 (on the x-axis) it works! I get # a different factor order! Summ$factor1 <- factor(Summ$factor1, levels=c("4", "2", "3", "1"), order=T) ggplot(Summ, aes(factor3, mean, group = factor1, ymin = mean - sdv , ymax = mean + sdv)) + geom_point(position = position_dodge(width = 0.25), size = 3) + geom_line(position = position_dodge(width = 0.25)) + geom_errorbar(width = 0.3, position = position_dodge(width = 0.25), size = 0.3) + facet_wrap(~Grouping, ncol = 2) + theme(strip.background = element_blank()) + scale_shape(solid = FALSE)+ theme_bw() + ylab(expression(paste("my measured stuff"))) + xlab("factor3") + theme(legend.position="none")+ labs(shape = "factor1", group = "factor1", linetype = "factor1") 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 ><((((º>`â¢. . ⢠`â¢. .⢠`â¢. . ><((((º>`â¢. . ⢠`â¢. .⢠`â¢. .><((((º>`â¢. . ⢠`â¢. .⢠`â¢. .><((((º> [[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.