1

我有两个来自单个长数据帧的图表,这些图表基于其中一列进行分面。这会产生一个方面图,其观察结果比另一个方面要多得多。我想为具有更多观察值的构面设置一个低 alpha 值,但为具有较少观察值的构面保留默认 alpha 值。

这是我的代码的复制品。

df <- data.frame(spons=sample(c(1:100),10000, replace=T), variable='score', value=runif(10000, -1,1), time=rep(1:10, 1000), DataSub=sample(c('original', 'matched'),10000,replace=T,  prob=c(0.01, 0.99)))
p <- ggplot(df, aes(x=factor(time), y=factor(spons)))
p+geom_point()+facet_grid(DataSub~., ncol=2)

我希望它看起来像 alpha= 0.01 或类似的更密集的图,但不理会更稀疏的图。

谢谢。

4

1 回答 1

1

您可以通过使用与alpha美学相同的变量来执行此操作,然后手动设置值,如下所示

p+geom_point(aes(alpha=DataSub))+
   facet_grid(DataSub~.)+scale_alpha_manual(values=c(0.01,1))

这有帮助,但在我的屏幕上,至少很难在上面板中分辨出太多的密度变化(values=c(0.02,1)似乎更好一点:另外使用theme_bw()+ theme(panel.grid.minor=element_blank(),panel.grid.major=element_blank())通过清除背景有助于更多,但你可能不想走那么远)

于 2014-09-17T21:35:42.357 回答