从ggplot2对象取回多边形颜色

| 假设我绘制了以下由两个多边形组成的图:
library(ggplot2)

polys <- data.frame( 
  id = rep(factor(c(\"1\",\"2\")),each=4),
  x = c(1,2,2,1,2,3,3,2),
  y = c(1,1,2,2,1,1,2,2),
  value = rep(c(3, 4), each=4)
) 

(p <- ggplot(polys, aes(x=x, y=y)) + geom_polygon(aes(fill=value, group=id)))
这使 : 有没有一种方法可以确定来自ѭ1gggglot对象的每个多边形的颜色?我在ѭ2上玩了一点,但是没有找到任何有用的方法。 预先感谢您的任何提示!     
已邀请:
        您可以通过以下方式做到这一点:
> x <- ggplotGrob(p)
> r <- getGrob(x, gPath(\"geom_polygon\", \"GRID.polygon\"), grep=T, global=T) 
> r
(polygon[GRID.polygon.766], polygon[GRID.polygon.769]) 
> r[[1]]$gp$fill
[1] \"#3B4FB8FF\" \"#3B4FB8FF\" \"#3B4FB8FF\" \"#3B4FB8FF\"
> r[[2]]$gp$fill
[1] \"#B71B1AFF\" \"#B71B1AFF\" \"#B71B1AFF\" \"#B71B1AFF\"
ggplotGrob
制作g树
getGrob
使用
gPath
提取所需的杂种
$gp$fill
显示多边形的颜色。 在ggplot2的未来版本中,可能会更轻松地获取信息。     

要回复问题请先登录注册