我在用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)
问题:有没有办法提取单个 ggplot 对象after调用plot_grid?例如,我想做这样的事情:
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 中删除图例。然而,我试图解决的问题要复杂得多,如果有一个通用的方法来做到这一点将会很有帮助。