我正在绘制相关性ggpairs
并根据过滤器拆分数据。
密度图根据每个过滤组中的数据点数量对其进行标准化。我希望他们对整个数据集中的数据点总数进行标准化。本质上,我希望能够使各个密度图的总和等于整个数据集的密度图。
我知道这可能打破了“密度图”的定义,但这是我想探索的一种呈现方式。
简而言之ggplot
,我可以通过添加y=..count..
美学来做到这一点,但ggpairs
不接受 x 或 y 美学。
一些示例代码和绘图:
set.seed(1234)
group = as.numeric(cut(runif(100),c(0,1/2,1),c(1,2)))
x = rnorm(100,group,1)
x[group == 1] = (x[group == 1])^2
y = (2 * x) + rnorm(100,0,0.1)
data = data.frame(group = as.factor(group), x = x, y = y)
#plot of everything
data %>%
ggplot(aes(x)) +
geom_density(color = "black", alpha = 0.7)
#the scaling I want
data %>%
ggplot(aes(x,y=..count.., fill=group)) +
geom_density(color = "black", alpha = 0.7)
#the scaling I get
data %>%
ggplot(aes(x, fill=group)) +
geom_density(color = "black", alpha = 0.7)
data %>% ggpairs(., columns = 2:3,
mapping = ggplot2::aes(colour=group),
lower = list(continuous = wrap("smooth", alpha = 0.5, size=1.0)),
diag = list(continuous = wrap("densityDiag", alpha=0.5 ))
)
是否有任何不涉及重新格式化整个数据集的建议?