我有这个数据集: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 种不同的方式来将变量归因于每个轴和颜色。因此:
- x = V1,y = V2,颜色 = V3
- x = V1,y = V3,颜色 = V2
- x = V2,y = V3,颜色 = V1
如何使用 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
关于r - ggplot2 中的分面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31735920/