1

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 中删除图例是最简单的。但是,我要解决的问题要复杂得多,如果有一种通用的方法来解决这个问题,那将会很有帮助。

4

0 回答 0