Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Pass additional arguments to plotmatrix() #158

Closed
jiho opened this Issue · 2 comments

2 participants

@jiho

Rather than having a just "colour" argument to plotmatrix() add ... and pass it to geom_point, so that any property (not just colour) can be set. E.g.

plotmatrix(d, mapping=aes(colour=someVariable), size=1, alpha=0.7)

Changing the code to this should be enough:

plotmatrix = 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, mapping) + facet_grid(xvar ~ yvar, scales = "free") + 
        geom_point(na.rm = TRUE, ...) + stat_density(aes(x = x, 
        y = ..scaled.. * diff(range(x)) + min(x)), data = densities, 
        position = "identity", colour = "grey20", geom = "line")
}
@hadley
Owner

I'm not really willing to change plotmatrix, basically because the whole approach is pretty horrible. Have you looked at ggally?

@jiho

No I didn't. It's great. Add a "deprecated" warning to plotmatrix to point to ggally?

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.