如何解决从ggplot2对象取回多边形颜色
| 假设我绘制了以下由两个多边形组成的图:library(ggplot2)
polys <- data.frame(
id = rep(factor(c(\"1\",\"2\")),each=4),x = c(1,2,1,3,2),y = c(1,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的未来版本中,可能会更轻松地获取信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。