ggplot2 中的分面

Facetting in ggplot2

我有这个数据集:https://dl.dropboxusercontent.com/u/73950/data.csv 数据集包含 3 个变量。

这是我现在可视化数据的方式:

library(ggplot2)
library(reshape2)
library(RColorBrewer)

dat = read.csv("data.csv", header = FALSE)

myPalette <- colorRampPalette(rev(brewer.pal(11, "Spectral")))
sc <- scale_colour_gradientn(colours = myPalette(100))

ggplot(dat, aes(x=V1, y=V3, colour = V2))+ geom_point(alpha = .2,size = 3) + sc

我不只是一个图,而是想对图进行分面以显示 3 种不同的方式来将变量归因于每个轴和颜色。因此:

如何使用 ggplot2 的分面做这种事情?

您可以通过将数据放入 ggplot 喜欢的格式来获得它。在这种情况下,可用于将数据拆分为多个方面的列(在下面称为 var)。为此,我只是将数据重复三次,为每个 2 向组合选择适当的 x 和 y 变量,并使用每个组合中遗漏的变量作为着色变量。

## Rearrange the data by 2-way combinations, the coloring is the remaining column
res <- do.call(rbind, combn(1:3, 2, function(ii)
    cbind(setNames(dat[,c(ii, setdiff(1:3, ii))], c("x", "y", "color")),
                   var=paste(ii, collapse=".")), simplify=F))

ggplot(res, aes(x=x, y=y, color=color))+ geom_point(alpha = .2,size = 3) + 
  facet_wrap(~ var, scales="free") + sc