require(quantmod)
require(reshape2)

DJIA <- na.omit(getSymbols("DJIA", src = "FRED", auto.assign = FALSE)["2012-12-04::2013-03-10"])

xtsMelt <- function(xtsData, metric, names = NULL) {
    df <- data.frame(index(xtsData), coredata(xtsData), stringsAsFactors = FALSE)
    df.melt <- melt(df, id.vars = 1)
    df.melt <- data.frame(df.melt, rep(metric, NROW(df.melt)))
    # little unnecessary housekeeping
    df.melt <- df.melt[, c(1, 2, 4, 3)]
    if (is.null(names)) {
        colnames(df.melt) <- c("date", "indexname", "metric", "value")
    } else {
        colnames(df.melt) <- names
    }
    df.melt[, 1] <- as.Date(df.melt[, 1])
    return(df.melt)
}

DJIA.melt <- xtsMelt(DJIA, "price", names = c("Date", "Index", "Metric", "Close"))
DJIA.melt[, 1] <- format(DJIA.melt[, 1], "%m/%d/%Y")

p1 <- rPlot(Close ~ Date, data = DJIA.melt, type = "line", size = list(const = 3))
p1$guides(x = list(numticks = 10), y = list(min = 12000, max = 15000))
p1$set(title = "Dow Jones Daily Closing Value")
p1