如何在ggplot中仅输出标题、移除灰色绘图区域?
ggplot2仅保留标题、隐藏绘图区的实现方法
完全可以实现该效果。默认运行空ggplot()代码出现灰色矩形,是因为ggplot默认主题自带灰色面板背景,只需要通过主题配置将所有绘图面板、坐标轴、网格线等无关元素设置为空白,仅保留标题、副标题即可。另外你原有代码里as.character(paste0(paste("title")))属于冗余写法,直接传入字符串作为标题参数即可,不需要嵌套类型转换和拼接函数。
原生ggplot2实现(无需额外依赖包)
直接将所有非标题类的主题元素设为element_blank(),再按需调整标题样式和边距:library(ggplot2) ggplot() + labs( title = "title", subtitle = "subtitle" ) + theme( # 隐藏面板所有背景、边框、网格线 panel.background = element_blank(), panel.border = element_blank(), panel.grid = element_blank(), # 隐藏所有坐标轴相关元素 axis.line = element_blank(), axis.title = element_blank(), axis.text = element_blank(), axis.ticks = element_blank(), # 配置标题、副标题样式:hjust控制对齐,margin控制边距,size控制字号 plot.title = element_text(hjust = 0.5, size = 14, margin = margin(t = 12, b = 6)), plot.subtitle = element_text(hjust = 0.5, size = 11, margin = margin(b = 12)), # 控制整个绘图的外边距,按需调整数值增减留白 plot.margin = margin(2,2,2,2) )简洁写法(基于
theme_void()快速清空元素)theme_void()是ggplot内置的空主题,会默认清空所有绘图区、坐标轴元素,只需要额外配置标题的显示样式即可,代码更精简:library(ggplot2) ggplot() + labs( title = "title", subtitle = "subtitle" ) + theme_void() + theme( plot.title = element_text(hjust = 0.5, size = 14, margin = margin(t = 12, b = 6)), plot.subtitle = element_text(hjust = 0.5, size = 11, margin = margin(b = 12)), plot.margin = margin(2,2,2,2) )
运行上述代码后就不会出现默认的灰色绘图区域,仅展示设置好的标题和副标题。你可以根据排版需求修改element_text()里的参数调整文字颜色、字号、字体,修改margin()的数值调整各部分的留白大小。
内容的提问来源于stack exchange,提问作者user19100232
相关产品推荐
相关产品推荐

