如何在grid.arrange排列的两个ggplot图表之间添加文字?
在ggplot2图表间添加文字的方法
要在两张用grid.arrange排列的ggplot图表中间插入文字,有两种简单实用的方法:
方法一:使用grid::textGrob创建文本对象
直接用grid包的textGrob生成可嵌入的文本元素,和图表一起传入grid.arrange:
library(ggplot2) library(gridExtra) library(grid) # 创建两张示例图表 P1 <- ggplot(mtcars, aes(x = mpg)) + geom_histogram() P2 <- ggplot(mtcars, aes(x = wt)) + geom_histogram() # 创建红色文本对象,可自定义字体大小、颜色等 text_element <- textGrob("这里添加你需要的信息", gp = gpar(col = "red", fontsize = 12, fontface = "bold")) # 排列图表和文本 grid.arrange(P1, text_element, P2, ncol = 1)
gpar()参数可以调整文本样式,比如颜色、字号、字体粗细,完全匹配你示例图里的红色文字效果。
方法二:用ggplot创建纯文本"图表"
如果更习惯ggplot语法,可以生成一个仅显示文本的空白图表作为中间元素:
library(ggplot2) library(gridExtra) P1 <- ggplot(mtcars, aes(x = mpg)) + geom_histogram() P2 <- ggplot(mtcars, aes(x = wt)) + geom_histogram() # 创建仅含文本的空白图 text_plot <- ggplot() + geom_text(aes(x = 0, y = 0), label = "这里添加你需要的信息", color = "red", size = 4.5, fontface = "bold") + theme_void() # 去掉所有坐标轴、背景等元素 # 排列三个元素 grid.arrange(P1, text_plot, P2, ncol = 1)
theme_void()能彻底清除图表的多余元素,只保留文字,完美融入排版。
内容的提问来源于stack exchange,提问作者ting_H
相关产品推荐
相关产品推荐

