Maybe something like this? withNames <- function(dframe, lineNames, plotName, colors){ one_day <- subset(dframe, data == '1941-06-16') one_day$lineNames <- lineNames
ggplot(dframe, aes(date, value, group = factor, color = factor)) + geom_line(size = 1) + facet_grid(Facet~., scales = 'free') + geom_text(aes(label = lineNames), data = one_day, vjust = 1) + scale_colour_manual(values = colors) + opts(title = plotName) } withNames(data, plines, pTitle, col1) It's not at all clear how you expect the line names to be matched up to the lines though. Hadley On Fri, Jul 8, 2011 at 3:39 PM, Ben Hunter <bjameshun...@gmail.com> wrote: > Hi, > > I really feel I've looked everywhere, although I know this can't be a hard > problem. I'd like to be able to call the graph below as a function, but I > can't get the function to recognize variables beyond 'dframe'. I've read > through many papers on writing functions in R, but I can't get this to work. > > data <- data.frame('date' = as.Date(rep(c(15101, > 15108, 15115, 15122, 15129, 15136, 15143, 15150),4), > origin = '1899-12-30'), > 'factor' = factor(rep(c('first','second'), each = 8, 2)), > 'value' = rep(c(429258, 430645, 431165, 431360, 452284, 467316, > 467326, 467330, > 375588, 411383, 427179, 364582, 351494, 359034, 374047, > 339628),2), > 'Facet' = rep(c('bottom','top'), each = 16)) > > pTitle <- 'Main Title' > plines <- c('Line 1', 'Line 2','Line 3', 'Line 4') > col1 <- c('#ec421e', '#f7bd2e','#ec421e', '#f7bd2e') > > #If I use the line below and explicitly place plines, pTitle and col1 in the > appropriate places > #it will work fine. I want to use the line as written without the hashmark. > #simple <- function(dframe){ > > withNames <- function(dframe, lineNames, plotName, colors){ > p <- ggplot(dframe, aes(date, value, group = factor, color = factor)) > p2 <- p + geom_line(size = 1) > # + opts(title = plotName) > p2 <- p2 + facet_grid(Facet~., scales = 'free') + > # p2 <- p2 + geom_text(data = dframe[dframe[,'date'] == '1941-06-16',], > # aes(date, value, label = lineNames, vjust = 1)) + > scale_colour_manual(values = colors) > } > > finalP <- withNames(data, plines, pTitle, col1) > > #finalP <- simple(data) > > [[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. > -- Assistant Professor / Dobelman Family Junior Chair Department of Statistics / Rice University http://had.co.nz/ ______________________________________________ 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.