Я хочу удалить вторую строку граней из моего графика ниже, потому что нет данных для этой факторной комбинации.Удаление целого ряда граней комбинации неиспользуемых коэффициентов
library(ggplot2)
library(grid)
set.seed(5000)
# generate first df
df1 = data.frame(x=rep(rep(seq(2,8,2),4),6),
y=rep(rep(seq(2,8,2),each=4),6),
v1=c(rep("x1",32),rep("x2",64)),
v2=c(rep("y1",64),rep("y2",32)),
v3=rep(rep(c("t1","t2"),each=16),3),
v4=rbinom(96,1,0.5))
# generate second df
df2 = data.frame(x=runif(20)*10, y=runif(20)*10,
v1=sample(c("x1","x2"),20,T))
# plot
ggplot() +
geom_point(data=df1, aes(x=x, y=y, colour = factor(v4)), shape=15, size=5) +
scale_colour_manual(values = c(NA,"black")) + facet_grid(v1+v2~v3, drop = T) +
geom_point(data=df2, aes(x=x,y=y), shape=23 , colour="black", fill="white", size=4) +
coord_equal(ratio=1) + xlim(0, 10) + ylim(0, 10)
Я пытался использовать идею из this пост ..
g=ggplotGrob(y)
pos=which(g$layout$t==5 | g$layout$t==6)
g$layout=g$layout[-c(pos),]
g$grobs=g$grobs[-c(pos)]
grid.newpage()
grid.draw(g)
..но получил это.
Как я устранить пробелы? Кроме того, есть ли прямое решение этого, без необходимости манипулировать гномами и т. Д.?
не проще подмножества данных, а не построить эти панели в первую очередь? – baptiste
@baptiste У моей DataFrame нет ничего лишнего, что я могу устранить. Итак, вы предлагаете, чтобы я делал отдельные графики и помещал их вместе с 'grid.arrange()' или что-то подобное? – zoneparser