am trying to produce two dot plot figures in ggplot2. So far the first one (p) in the program below is working fine. However when I want to move to a faceted plot (p1) I seem to lose my ordering or, more likely, I'm just getting an ordering I am not expecting and I always have trouble understanding ordering in R! What I would like is the 2011 panel to be ordered in descending order as is the first (p) plot where Federal Administration is on top since it is the highest value and then have the 2001 panel sorted in the same order as the 2011 panel although now I think of it, it might be just as good to have the 2001 panel ordered in descending order as well. Hints for either layout would be appreciated. Can anyone suggest an approach? sessionInfo() R version 2.15.0 (2012-03-30) Platform: i686-pc-linux-gnu (32-bit) locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_CA.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_CA.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=C LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] plyr_1.7.1 reshape2_1.2.1 scales_0.2.1 ggplot2_0.9.1 plotrix_3.4-1 loaded via a namespace (and not attached): [1] colorspace_1.1-1 dichromat_1.2-4 digest_0.5.2 grid_2.15.0 [5] labeling_0.1 MASS_7.3-18 memoise_0.1 munsell_0.3 [9] proto_0.3-9.2 RColorBrewer_1.0-5 stringr_0.6 tools_2.15.0 John Kane Kingston ON Canada #==========================Code================================ library(ggplot2) library(reshape2) # produce a dotplot for 2001 and a faceted dotplot for 2001 & 2011 mydata <- structure(list(group = structure(c(7L, 10L, 24L, 19L, 12L, 3L, 14L, 22L, 6L, 13L, 8L, 11L, 5L, 17L, 21L, 20L, 23L, 2L, 1L, 4L, 25L, 9L, 15L, 26L, 16L, 18L), .Label = c(" Accommodation and food services", "Agriculture ", " Business, building & other support services", "Construction", "Durable goods", " Educational services", " Federal administration", " Finance and insurance", "Goods-producing industries ", " Health care and social assistance", " Information, culture and recreation", "Local and other administration ", "Manufacturing", "Non-Durable goods", "Other primary industries", " Other services", "Primary ", " Professional, scientific & technical services", " Provincial administration", " Real estate and leasing", " Retail trade", " Service-producing", " Trade", " Transportation and warehousing", "Utilities", " Wholesale trade"), class = "factor"), absent2011 = c(15.2, 14, 12.3, 11.9, 10.5, 10.1, 9.8, 9.7, 9.4, 9.1, 8.7, 8.6, 8.6, 8.3, 8.2, 8, 7.9, 7.8, 7.6, 7.6, 7.3, 7.2, 7.1, 7, 6.5, 5.8), absent2001 = c(11.6, 12.8, 10.1, 9.2, 9.4, 8.1, 8.7, 8.5, 8.6, 8.6, 7.8, 7.5, 8.5, 8.5, 8, 6.3, 7.5, 7.3, 7.3, 8.5, 7.9, 8.5, 9, 6.2, 6.5, 5.1)), .Names = c("group", "absent2011", "absent2001"), class = "data.frame", row.names = c(NA, -26L)) mdata <- structure(list(group = structure(c(7L, 10L, 24L, 19L, 12L, 3L, 14L, 22L, 6L, 13L, 8L, 11L, 5L, 17L, 21L, 20L, 23L, 2L, 1L, 4L, 25L, 9L, 15L, 26L, 16L, 18L), .Label = c(" Accommodation and food services", "Agriculture ", " Business, building & other support services", "Construction", "Durable goods", " Educational services", " Federal administration", " Finance and insurance", "Goods-producing industries ", " Health care and social assistance", " Information, culture and recreation", "Local and other administration ", "Manufacturing", "Non-Durable goods", "Other primary industries", " Other services", "Primary ", " Professional, scientific & technical services", " Provincial administration", " Real estate and leasing", " Retail trade", " Service-producing", " Trade", " Transportation and warehousing", "Utilities", " Wholesale trade"), class = "factor"), absent2011 = c(15.2, 14, 12.3, 11.9, 10.5, 10.1, 9.8, 9.7, 9.4, 9.1, 8.7, 8.6, 8.6, 8.3, 8.2, 8, 7.9, 7.8, 7.6, 7.6, 7.3, 7.2, 7.1, 7, 6.5, 5.8), absent2001 = c(11.6, 12.8, 10.1, 9.2, 9.4, 8.1, 8.7, 8.5, 8.6, 8.6, 7.8, 7.5, 8.5, 8.5, 8, 6.3, 7.5, 7.3, 7.3, 8.5, 7.9, 8.5, 9, 6.2, 6.5, 5.1)), .Names = c("group", "absent2011", "absent2001"), class = "data.frame", row.names = c(NA, -26L)) # produce a dotplot for 2011 p <- ggplot(mydata, aes(x = reorder(group, absent2011) , y = absent2011)) + geom_point() + coord_flip() + opts(title = "Absenteeism among Canadian employees \n 2011", legend.position="none") + scale_y_continuous("Annual number of days absent") + scale_x_discrete("Industry Groups") p # faceted dotplot for 2001 & 2011 mdata <- melt(mdata, id=c("group")) # function to set facet labels. mf_labeller <- function(var, value){ value <- as.character(value) if (var=="variable") { value[value=="absent2001"] <- "2001" value[value=="absent2011"] <- "2011" } return(value) } p1 <- ggplot(mdata, aes(x = reorder(group, value) , y = value,, colour = variable )) + geom_point() + coord_flip() + facet_grid(variable ~ ., labeller=mf_labeller ) + opts(title = "Rates of absenteeism among Canadian employees", legend.position = "none") + scale_y_continuous("Annual number of days absent") + scale_x_discrete("Industry Groups") p1 #===========================End Code============================ ____________________________________________________________ FREE 3D EARTH SCREENSAVER - Watch the Earth right on your desktop!