r - 网格排列 textGrob() 和 ggplots。标题和副标题 gridExtra
问题描述
基本上,我想为 grid.arrange() 绘图添加标题和副标题。
我有plot_list
一个 15 个 ggplots 的列表和
tg <- textGrob('Title', gp = gpar(fontsize = 13, fontface = 'bold'))
sg <- textGrob('Subtitle', gp = gpar(fontsize = 10))
但这不起作用。我没有收到任何错误,但tg
也sg
没有出现在情节中。
grid.arrange(tg, sg, grobs = plot_list, ncol = 3)
老实说,我不是专家,gridExtra
所以grid
任何建议都将不胜感激
解决方案
在使用 grid.arrange 更改 multiplot ggplot2 中的多行标题之后,我可以通过创建两个网格来完成您所要求的操作,首先只有绘图,第二个使用标题、副标题和第一个网格。使用合成plot_list
:
df <- data.frame(v1 = rnorm(1000))
plot_list <- list()
for (i in 1:15) {
df[,ncol(df)+1] <- rnorm(1000)
names(df)[ncol(df)] <- paste0("V_",as.character(i))
local({
i <- i
plot_list[[i]] <<- ggplot(df) + geom_point(aes_string(x = "v1", y = paste0("V_",as.character(i))))
})
}
tg <- textGrob('Title', gp = gpar(fontsize = 13, fontface = 'bold'))
sg <- textGrob('Subtitle', gp = gpar(fontsize = 10))
margin <- unit(0.5, "line")
grided <- gridExtra::grid.arrange(grobs = plot_list, ncol = 3)
gridExtra::grid.arrange(tg, sg, grided,
heights = unit.c(grobHeight(tg) + 1.2*margin,
grobHeight(sg) + margin,
unit(1,"null")))
希望这可以帮助!
推荐阅读
- html - IE Flexbox 不尊重子 flexbox 大小
- python - 用今天的日期替换 CSV 文件中的“NULL”值 - Python
- vb.net - Telerik 过滤 radgrid 导出按钮后不起作用
- java - NoSuchElementException:使用扫描仪获取用户输入时找不到行?
- php - 如何通过 CURL 和 PHP 执行文件上传
- ios - 执行多个 Alamofire 请求时出现错误 (500)
- java - PACT - 修改标头以包含 oAuth2 令牌
- parse-platform - 聊天应用程序使用解析服务器列出每个对等方的最后消息
- nativescript - 如何在 NativeScript 中更改状态文本颜色 (iOS)?
- azure - 如何将两个项目部署到一个 Web 应用程序中 - 使用子目录部署