R 如何为离散值生成有意义的绘图员/相关图
我最喜欢的探索性分析工具之一是R 如何为离散值生成有意义的绘图员/相关图,r,analytics,correlation,R,Analytics,Correlation,我最喜欢的探索性分析工具之一是pairs(),但是在离散值数量有限的情况下,它会随着点完全对齐而变得平坦。考虑以下事项: y <- t(rmultinom(n=1000,size=4,prob=rep(.25,4))) pairs(y) y如果将y更改为data.frame,则可以添加一些“抖动”,并使用col选项设置透明度级别(rgb中的第四个数字): 编辑:由于ggplot2中的plotmatrix已被弃用,请使用GGPAIRES(上面@hadley的评论中提到的GGALY软件包)
pairs()
,但是在离散值数量有限的情况下,它会随着点完全对齐而变得平坦。考虑以下事项:
y <- t(rmultinom(n=1000,size=4,prob=rep(.25,4)))
pairs(y)
y如果将y更改为data.frame,则可以添加一些“抖动”,并使用col选项设置透明度级别(rgb中的第四个数字):
编辑:由于ggplot2中的plotmatrix已被弃用,请使用GGPAIRES(上面@hadley的评论中提到的GGALY软件包)
以下是使用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()
库(ggplot2)
##重新排列数据(从plotmatrix函数复制)
prep.plot以下是使用corrplot
的示例:
M <- cor(y)
corrplot.mixed(M)
M中描述了两个R包
library(GGally)
ggpairs(y, lower = list(params = c(alpha = .2, position = "jitter")))
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()
M <- cor(y)
corrplot.mixed(M)