问题描述
我通过gtable
从两个gTree
对象中创建了grob
个对象(也是gDesc
myobj
myobj <- gridExtra::grid.arrange(g1,g2)
个对象ggplot
g1
,g2
前一段时间,现在我必须恢复用于创建两个ggplots的数据。有办法正确地做到这一点吗?
到目前为止我已经尝试过的
我已经尝试使用各种功能(例如myobj
)来转换ggpubr::as_ggplot
,从而导致对象的waiver()
条目是$data
-因此没有成功-而且我还扫过了grobs
中的所有myobj
项,实际上我在图中找到了数据点(看起来像这样
grobs.grobs.children.geom_point.points.5415.x1
0.04545455
),但仅是位置坐标$ \ in(0,1)$w.r.t。相应的轴。然后,我大概可以获得轴+轴范围,然后外推原始数据点。但这似乎太费力了。有没有更简单的解决方案?
代表(某种)
不确定这实际上是否会导致与我拥有相同的对象(因为我的年龄将近2岁),但要从头开始:
library(ggplot)
# plot 1
g1 <- ggplot(mpg,aes(displ,cty)) + geom_point() + facet_grid(cols = vars(cyl))
# plot 2
g2 <- ggplot(mtcars,aes(mpg,wt,colour = factor(cyl))) + geom_point() + facet_grid(vars(cyl))
# create object
myobj <- gridExtra::grid.arrange(g1,g2,ncol=1)
# Now I would need some extract_data function to retrieve mpg and mtcars:
list_with_mpg_and_mtcars <- extract_data(myobj)