ggplot facet_grid具有不同的y映射

时间:2014-08-02 03:45:35

标签: r ggplot2 facet

是否可以将facet_grid用于网格映射不同数据的行(或列)?

我有数据框:

data=data.frame(x = c(6, 10, 4, 6, 4, 4, 9, 2, 4, 4, 5, 4, 2, 7, 8, 3), z1 = c(6, 6, 9, 8, 8, 2, 3, 1, 9, 8, 3, 9, 8, 1, 10, 7), z2 = c(8, 5, 6, 3, 9, 9, 8, 5, 1, 3, 5, 8, 8, 2, 3, 3), r = c('1L', '1L', '1L', '1L','1L', '1L', '1L', '1L', '2L', '2L', '2L', '2L', '2L', '2L', '2L', '2L'))
.

目前我可以为我想要的每个y映射组合2个facet包:

p1 <- ggplot(data,aes(x=x,y=z1))+facet_wrap(~r)+geom_point(aes(colour=r))
p2 <- ggplot(data,aes(x=x,y=z2))+facet_wrap(~r)+geom_point(aes(colour=r))
arrangeGrob(p1,p2,nrow=2)

Resulting plot

是否可以将这些内容组合在一起facet_grid

1 个答案:

答案 0 :(得分:1)

如果您希望将所有数据放在一个图表中,那么只需重新整形数据就更好了。在这里,我使用了reshape2库来简化

library(reshape2)
mm <- melt(data, id.vars=c("x","r"))
ggplot(mm,aes(x=x,y=value))+facet_grid(variable~r)+geom_point(aes(colour=r))