删除空构面类别

时间:2016-02-22 02:50:29

标签: r database ggplot2 facet

制作我的多面图时遇到问题只显示数据,而不是显示没有数据的构面。

以下代码:

p<- ggplot(spad.data, aes(x=Day, y=Mean.Spad, color=Inoc))+
    geom_point()

p + facet_grid(N ~ X.CO2.)

给出以下图形: enter image description here

我已经玩了一段时间,但似乎无法找到解决方案。

可在此处查看数据框:https://docs.google.com/spreadsheets/d/11ZiDVRAp6qDcOsCkHM9zdKCsiaztApttJIg1TOyIypo/edit?usp=sharing

此处可查看可重现的示例:https://docs.google.com/document/d/1eTp0HCgZ4KX0Qavgd2mTGETeQAForETFWdIzechTphY/edit?usp=sharing

1 个答案:

答案 0 :(得分:2)

您的问题在于缺少对x和y变量的观察。这些不会影响方面的创建,只会受到数据中存在的方面变量水平的影响。以下是使用示例数据的说明:

#generate some data
nobs=100
set.seed(123)
dat <- data.frame(G1=sample(LETTERS[1:3],nobs, T),
                  G2 = sample(LETTERS[1:3], nobs, T),
                  x=rnorm(nobs),
                  y=rnorm(nobs))
#introduce some missings in one group
dat$x[dat$G1=="C"] <- NA

#attempt to plot
p1 <- ggplot(dat, aes(x=x,y=y)) + facet_grid(G1~G2) + geom_point()
p1 #facets are generated according to the present levels of the grouping factors

enter image description here

#possible solution: remove the missing data before plotting
p2 <- ggplot(dat[complete.cases(dat),], aes(x=x, y=y)) + facet_grid(G1 ~G2) + geom_point()
p2

enter image description here