如何在ggplot2的扩展边距内调整图表标题与说明文字的位置?
在ggplot2中调整标题和说明文字在扩大边距内的位置
要实现标题靠近上边距顶部、说明文字(caption)靠近下边距底部的效果,可通过调整theme()中plot.title和plot.caption的element_text()参数完成,核心利用垂直对齐参数vjust和外边距参数margin:
具体修改方案
- 标题(plot.title):设置
vjust = 1让标题对齐上边距顶部,同时增大底部外边距,拉开标题与图表主体的距离。 - 说明文字(plot.caption):设置
vjust = 0让文字对齐下边距底部,同时增大顶部外边距,拉开文字与图表主体的距离。
修改后的完整代码
library(tidyverse) set.seed(10) dat <- data.frame(x = rnorm(10, 20, 5), y = rnorm(10, 20, 7.5)) ggplot(dat, aes(x = x, y = y)) + theme_bw() + geom_point() + labs(title = "Title top of margin", caption = "Caption bottom of margin") + theme( plot.title = element_text( size = 20, hjust = 0.5, vjust = 1, # 对齐上边距顶部 margin = margin(b = 2, unit = "lines") # 增大标题与主体的底部间距 ), plot.caption = element_text( size = 10, hjust = 0.5, vjust = 0, # 对齐下边距底部 margin = margin(t = 2, unit = "lines") # 增大说明文字与主体的顶部间距 ), plot.margin = unit(c(3, 1, 3, 1), "lines") )
参数说明
vjust:控制文本在自身容器内的垂直对齐,取值范围0-1:- 标题用
vjust = 1,实现文本顶部与上边距顶部对齐; - 说明文字用
vjust = 0,实现文本底部与下边距底部对齐。
- 标题用
margin:设置文本元素的外边距,b = 2指底部外边距为2行,t = 2指顶部外边距为2行,可根据需求调整数值来控制文本与图表主体的距离。
内容的提问来源于stack exchange,提问作者user13973103
相关产品推荐
相关产品推荐

