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
相关产品推荐
相关产品推荐

