You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调整列表中的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:06:39