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

R语言grid.arrange函数调整标签与表格间距的问题问询

解决方案

方法1:通过textGrob自定义标签边距(最便捷)

grid.arrange的top/left/bottom/right参数支持传入textGrob对象,可直接通过间距参数控制标签和表格的距离。
完整可运行代码如下:

# 加载所需包,grid为R内置包无需额外安装
library(gridExtra)
library(grid)

# 原有生成表格的代码保持不变
distances_lsit = c(25,50,75,100) 
category_lsit = 0:5 
damage_table = matrix(NA, nrow=length(distances_lsit), ncol=length(category_lsit))
damage_table[1,] = c(10,25,50,75,100,100)
damage_table[2,] = c(5,10,25,50,75,100)
damage_table[3,] = c(2.5,5,10,25,50,75)
damage_table[4,] = c(0,2.5,5,10,25,50)
rownames(damage_table) = distances_lsit
colnames(damage_table) = category_lsit
table_scale = tableGrob(damage_table)

# 修改后的grid.arrange写法
grid.arrange(
  table_scale,
  # 自定义顶部标签,padding控制底部间距,数值越小越贴近表格
  top = textGrob("Label 1", padding = unit(0.1, "lines")),
  # 自定义左侧标签,rot=90保持文字竖向,padding控制右侧间距
  left = textGrob("Label 2", rot = 90, padding = unit(0.1, "lines"))
)

你可以调整unit中的数值控制间距,比如想要更近就改成0.05,想要稍远就改成0.3,单位也可以替换为"cm"、"mm"等符合你使用习惯的单位。如果运行时发现padding参数不生效,也可以通过调整vjust(垂直偏移)和hjust(水平偏移)参数控制位置,比如顶部标签设置vjust=0会向下贴近表格,左侧标签设置hjust=0会向右贴近表格。

方法2:自定义布局宽高(更精细控制)

如果需要调整整体布局的全局留白,也可以通过设置heights和widths参数控制布局占比:

grid.arrange(
  table_scale,
  top = "Label 1",
  left = "Label 2",
  # 三个参数分别对应 左侧留白宽度、表格宽度、右侧留白宽度,数值越小对应留白越窄
  widths = unit.c(unit(0.5, "lines"), unit(1, "null"), unit(0.1, "lines")),
  # 三个参数分别对应 顶部留白高度、表格高度、底部留白高度
  heights = unit.c(unit(0.5, "lines"), unit(1, "null"), unit(0.1, "lines"))
)

内容的提问来源于stack exchange,提问作者KJarocki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:09:08