删除空的分面类别

Removing Empty Facet Categories

我无法让我的分面图只显示数据,而不是显示没有数据的分面。

以下代码:

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

p + facet_grid(N ~ X.CO2.)

给出下图:

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

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

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

您的问题在于缺少 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

#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