cowplot:调用plot_grid后提取子图

时间:2018-05-22 16:23:52

标签: r ggplot2 cowplot grob

我正在使用plot_grid来安排两个地块:

library(ggplot2)
library(cowplot)

d = data.frame(x=rnorm(100), y=rnorm(100), g=sample(c('a', 'b'), 100, replace=T))
p1 = ggplot(d) + geom_point(aes(x=x, y=y, colour=g))
p2 = ggplot(d) + geom_point(aes(x=y, y=x, colour=g))
p = plot_grid(p1, p2, nrow=1)

问题:有没有办法在调用plot_grid之后提取单个ggplot对象?例如,我想做这样的事情:

q = extract_ggplot_objects(p)
q1 = q[[1]]
q2 = q[[2]]
q1 = q1 + theme(legend.position='none')
q2 = q2 + ylab('') + theme(axis.text.y=element_blank(), axis.ticks.y=element_blank())
new_p = plot_grid(q1, q2, nrow=1)

我知道对于这个具体的例子,最简单的方法是在调用plot_grid之前从p1中删除图例。但是,我试图解决的问题要复杂得多,如果有一般方法可以解决这个问题。

0 个答案:

没有答案