如何为离散值生成有意义的绘图员/关联图

探索性分析最喜欢的工具之一是pairs() ,但是在数量有限的离散值的情况下,由于点完全对齐,因此它会变得平坦。 考虑以下:

y <- t(rmultinom(n=1000,size=4,prob=rep(.25,4)))
pairs(y)

它并没有给出很好的相关性。 有没有另一种情节风格?


如果将y更改为data.frame,则可以添加一些“抖动”,使用col选项可以设置透明度级别(rgb中的第4个数字):

y <- data.frame(y)
pairs(sapply(y,jitter), col = rgb(0,0,0,.2))

在这里输入图像描述

或者你可以使用ggplot2的plotmatrix:

library(ggplot2)
plotmatrix(y) + geom_jitter(alpha = .2)

在这里输入图像描述

编辑:因为ggplot2中的plotmatrix已被弃用,请使用ggpairs(上面的@ hadley评论中提到的GGally包)

library(GGally)
ggpairs(y, lower = list(params = c(alpha = .2, position = "jitter")))

在这里输入图像描述


这是一个使用corrplot的例子:

M <- cor(y)
corrplot.mixed(M)

在这里输入图像描述

你可以在介绍中找到更多的例子

http://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html


这里有几个使用ggplot2的选项:

library(ggplot2)

## re-arrange data (copied from plotmatrix function)
prep.plot <- function(data) {
    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))
    return(all)
}

dat <- prep.plot(data.frame(y))

## plot with transparent jittered points
ggplot(dat, aes(x = x, y=y)) +
    geom_jitter(alpha=.125) +
    facet_grid(xvar ~ yvar) +
    theme_bw()

## plot with color representing density
ggplot(dat, aes(x = factor(x), y=factor(y))) +
    geom_bin2d() +
    facet_grid(xvar ~ yvar) +
    theme_bw()
链接地址: http://www.djcxy.com/p/30853.html

上一篇: How to produce a meaningful draftsman/correlation plot for discrete values

下一篇: Center Plot title in ggplot2