p <- ggplot(mtcars, aes(mpg, wt))
p + geom_point()+facet_grid(cyl ~ vs)+theme_bw()
我希望在不显示任何数据点的情况下使面板(右下角的1 vs 8)变空白,但同时仍想保留这种布局。
因此,facet_wrap(cyl ~ vs)
不能解决我的问题。
也许更一般的问题是是否可以在ggplot2中安排每个面板?
facet_wrap
。创建独立的子图。如需详细的逐步方法,请查看我的答案。gridExtra
包组合绘图:library(gridExtra)
library(grid)
blank <- grid.rect(gp=gpar(col="white"))
grid.arrange(plot1, plot2, blank, plot3, ncol=2)
这种方法还可以让你对最终图的外观产生很大影响(在我看来)。
grid.arrange
是gridExtra
包中的一个函数。 - Jaapgrid.rect
需要 library("grid")
。 - Rufo## get the table grobs
g1 <- ggplot_gtable(ggplot_build(p))
library(gtable)
library(grid)
## here the main modification
## change one panel by a new rectangle.
pp <- gtable_add_grob(g1,rectGrob(gp=gpar(col=NA)),t=8,l=6,b=8,r=6)
grid.draw(pp)
facet_wrap(cyl ~ vs, ncol=2)
,则排列方式将得到保留,尽管标签会稍微改变。这不是您的意图吗? - Nick