[R] ggplot2 Y axis labels

Felipe Carrillo mazatlanmexico at yahoo.com
Wed Feb 18 23:21:36 CET 2009


Hi all:
Using the example below, is there a way to add Y axis titles to each graphic instead of sharing the same title?

library(ggplot2)

RT = matrix(c(814, 500, 424, 394, 967, 574, 472, 446),4,2)
colnames(RT) = c('repetition','alternation')
rownames(RT) = c('7-yrs','11-yrs','15-yrs','21-yrs')

rt <- melt(RT)
names(rt) <- c("age", "trt", "value")
rt$variable <- "rt"

#this next block was missing in Hadley's previous example
error = matrix(c(10,6,6,4,13,7,6,3),4,2)
colnames(error) = c('repetition','alternation')
rownames(error) = c('7-yrs','11-yrs','15-yrs','21-yrs')

errors <- melt(error)
names(errors) <- c("age", "trt", "value")
errors$variable <- "error"

df <- rbind(rt, errors)

# Make sure factors are ordered correctly
df$age <- factor(df$age, levels = c("7-yrs", "11-yrs", "15-yrs", "21-yrs"))

# Which results in:
structure(list(age = structure(c(1L, 2L, 3L, 4L, 1L, 2L, 3L,
4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L), .Label = c("7-yrs", "11-yrs",
"15-yrs", "21-yrs"), class = "factor"), trt = structure(c(2L,
2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L), .Label =
c("alternation",
"repetition"), class = "factor"), value = c(814, 500, 424, 394,
967, 574, 472, 446, 10, 6, 6, 4, 13, 7, 6, 3), variable = c("rt",
"rt", "rt", "rt", "rt", "rt", "rt", "rt", "error", "error", "error",
"error", "error", "error", "error", "error")), .Names = c("age",
"trt", "value", "variable"), row.names = c(NA, 16L), class = "data.frame")

# It's now straightforward to create recreate the plot with lines
# or with bars:

plot <- ggplot(df, aes(x=age, y=value, colour = trt, fill = trt)) +
facet_grid(variable ~ . , scale = "free")
plot + geom_bar(position = "dodge")  +   geom_line(aes(group = trt)) + geom_point()

Felipe D. Carrillo  
Supervisory Fishery Biologist  
Department of the Interior  
US Fish & Wildlife Service  
California, USA




More information about the R-help mailing list