geom_histogram和geom_blank:控制y限制

时间:2018-11-21 20:58:03

标签: r ggplot2

我想创建一组使用facet_wrap的直方图。 y限制变化很大,有时没有给定组合的数据。因此,我认为我可以使用虚拟数据框和geom_blank控制y限制。

当我使用geom_point()时,Geom_blank()可以按预期工作,但是当我使用geom_histogram()时,则不能按预期工作

例如,我创建了这两个数据帧

test  <- data.frame(grp=rep(c("a", "b"),3), x.value=rep(c(10,20,30), each=2), 
         y.value=rep(1:3, each=2))
dummy <- data.frame(grp=rep(c("a", "b"),3),  x.value=rep(c(10,20,30), each=2),  
         y.value=c(0,10,10,20,20,30))  

如果我想做一个散点图:

p1 <- ggplot(test, aes(x=x.value, y=y.value)) + geom_point()
p1 <- p1 + facet_wrap(~grp, scales="free")
p1

p2 <- p1 + geom_blank(data=dummy)
p2  

geom_blank()更改了y限制。

但是当我尝试创建直方图时

p3 <- ggplot(test, aes(x=x.value, weight=y.value)) + geom_histogram(bins=6)
p3 <- p3 + facet_wrap(~grp, scales="free")
p3

p4 <- p3 + geom_blank(data=dummy)
p4

geom_blank()没有影响。

如何控制一组直方图的复杂y限制?

1 个答案:

答案 0 :(得分:1)

您需要像在y.valuey中所做的那样将p1映射到p2

p4 <- p3 + geom_blank(aes(y = y.value), data=dummy)
p4

enter image description here