我正在尝试使用ggplot2完成单个变量的所有成对散点图。类似于默认对()的东西,但我想用ggplot2操纵刻面和着色。这是我目前在ggplot2
中尝试的一个失败的例子iris_melt = melt(iris)
ggplot(iris_melt, aes(value,value)) + geom_point() + facet_wrap(variable~variable)
我想要的是:
我知道GGally的ggpairs会在这种情况下做到这一点,但是我想做自定义分面,我不明白为什么我需要'解开'数据而不是保持整洁
答案 0 :(得分:1)
您可以为ggpairs
提供自定义功能,以便您控制所有常用的ggplot参数
df <- read.table("test.txt")
upperfun <- function(data,mapping){
ggplot(data = data, mapping = mapping)+
geom_density2d()+
scale_x_continuous(limits = c(-1.5,1.5))+
scale_y_continuous(limits = c(-1.5,1.5))
}
lowerfun <- function(data,mapping){
ggplot(data = data, mapping = mapping)+
geom_point()+
scale_x_continuous(limits = c(-1.5,1.5))+
scale_y_continuous(limits = c(-1.5,1.5))
}
ggpairs(df,upper = list(continuous = wrap(upperfun)),
lower = list(continuous = wrap(lowerfun)))
有关数据和背景信息,请参阅this question
答案 1 :(得分:0)
已有内置功能
library(GGally)
ggpairs(iris)
答案 2 :(得分:-1)
关于堆栈溢出的另一篇文章建议您枚举数据,为每个比较创建一个额外的列:
Faceting plots by combinations of columns in ggplot2
这可以得到我想要的,但在多列之间进行成对组合时,它绝对不优雅。