使用ggplot,如何在单个构面上使用多个bin宽度

时间:2016-05-26 21:16:17

标签: r ggplot2 facet-grid

我想在ggplot中创建一个2x2 facet_grid(使用geom_bin2d),我可以通过facet行或列独立指定bin宽度。

以下是示例数据:

x=runif(100,0,100)
y=runif(100,0,100)
topStrings=c("t1","t2")
sideStrings=c("s1","s2")
d=data.frame(cbind(x,y,top=sample(topStrings,100,replace=T),side=sample(sideStrings,100,replace=T)))

这将生成100行(x,y)元组,每个元组分类两次(s和a)。有人建议您只需在数据的每个子集上调用geom_bin2d并指定一个bin宽度,如下所示:

ggplot(d, aes(x=x,y=y))+
    geom_bin2d(data=subset(d, side="s1"), binwidth = c(10,10))+
    geom_bin2d(data=subset(d, side="s2"), binwidth = c(10,1))+
    facet_grid(side~top,scales="free_y")

根据我的大脑,这应该显示顶行(s1)的底部大于底部(s2)。但它似乎不起作用。似乎整个图表只显示了最大的bin大小。关于如何做到这一点的任何建议?

由于

1 个答案:

答案 0 :(得分:0)

我通过使用stat_bin2d()代替了这个问题。我不确定所有的差异,但是在这里你指定bin计数而不是bin宽度。我的箱子计数始终保持不变。