调整列表中的grobs大小时遭遇“Value being assigned must be a unit”错误
调整列表形式Grobs大小适配出版图表时的重复错误问题
我最近一直在折腾怎么高效调整grobs的尺寸,好做出符合出版要求的图表,但在用Stack Overflow上找到的针对列表形式grobs的代码时,反复碰到同一个错误,实在头疼。下面是我整理的自包含示例,改编自上面提到的优质回答:
library(grid) library(gridExtra) library(ggplot2) # 生成一个包含5个空ggplot对象的列表 morletPlots <- replicate(5, ggplot(), simplify = FALSE) # 将每个ggplot转换为grob对象 grob_list <- lapply(morletPlots, ggplotGrob) # 尝试统一调整每个grob的面板高度(这部分是我出错的核心代码) grob_list <- lapply(grob_list, function(g) { g$heights[2] <- unit(5, "cm") return(g) }) # 尝试组合这些调整后的grobs时触发错误 grid.arrange(grobs = grob_list)
每次运行到组合步骤的时候,都会弹出错误提示(比如维度不匹配、grob结构异常之类的),我反复检查了代码逻辑,和原回答的结构基本一致,但就是解决不了这个问题。
内容的提问来源于stack exchange,提问作者neuropsych
相关产品推荐
相关产品推荐

