Skip to content

Instantly share code, notes, and snippets.

@alaiacano
Created November 29, 2011 15:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save alaiacano/1405150 to your computer and use it in GitHub Desktop.
Save alaiacano/1405150 to your computer and use it in GitHub Desktop.
plotmatrix with aesthetics
plotmatrix2 <- function (data, mapping = aes())
{
grid <- expand.grid(x = 1:ncol(data), y = 1:ncol(data))
grid <- subset(grid, x != y)
all <- do.call("rbind", lapply(1:nrow(grid), function(i) {
xcol <- grid[i, "x"]
ycol <- grid[i, "y"]
data.frame(xvar = names(data)[ycol], yvar = names(data)[xcol],
x = data[, xcol], y = data[, ycol], data)
}))
all$xvar <- factor(all$xvar, levels = names(data))
all$yvar <- factor(all$yvar, levels = names(data))
densities <- do.call("rbind", lapply(1:ncol(data), function(i) {
data.frame(xvar = names(data)[i], yvar = names(data)[i],
x = data[, i])
}))
mapping <- defaults(mapping, aes_string(x = "x", y = "y"))
class(mapping) <- "uneval"
ggplot(all) + facet_grid(xvar ~ yvar, scales = "free") +
geom_point(mapping, na.rm = TRUE) + stat_density(aes(x = x,
y = ..scaled.. * diff(range(x)) + min(x)), data = densities,
position = "identity", colour = "grey20", geom = "line")
}
@low-decarie
Copy link

Where does the "defaults" function come from?

@low-decarie
Copy link

I found it in plyr. Sorry!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment