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!

______________________________________________
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