【发布时间】:2016-03-11 09:21:30
【问题描述】:
首先,我要感谢巴蒂斯特爵士帮助我改进了我的 R 脚本,他使用 gtable/textGrob 在组合图的左下角添加了一个标题,如下所示:
library(grid)
library(gridExtra)
library(ggplot2)
p1 <- p2 <- ggplot()
g1 <- ggplotGrob(p1)
g2 <- ggplotGrob(p2)
g <- rbind(g1, g2)
caption <- textGrob("Figure 1. This is a caption", hjust=0, x=0)
g <- gtable::gtable_add_rows(g, unit(2,"mm") + grobHeight(caption), -1)
g <- gtable::gtable_add_grob(g, caption, nrow(g), l = 4, r = ncol(g))
grid.newpage()
grid.draw(g)
不过,我还想补充两点:
(1) 在标题中插入一个学名,并用斜体书写。 - 例如,根据上面提到的标题,我想只用斜体字“is”,其余的都是纯文本。
(2) 我还会在标题中添加符号,例如点形状=c(1,22);颜色=c(“黑色”,“红色”);填充=c("红色", "黑色")。
我将如何做这些?我是 R 程序的新手,因此非常感谢您的帮助。谢谢。
更新:
我已经在@Docconcoct、@user20650 和@baptiste 的帮助下使用此脚本解决了问题 1:
library(grid)
library(gridExtra)
library(ggplot2)
g1 <- ggplotGrob(pl)
g2 <- ggplotGrob(pl1)
g <- rbind(g1, g2)
caption <- textGrob(expression(paste("Figure 1. This", italic(" is"), " a caption")), hjust=0, x=0)
g <- gtable::gtable_add_rows(g, unit(2,"mm") + grobHeight(caption), -1)
g <- gtable::gtable_add_grob(g, caption, nrow(g), l = 4, r = ncol(g))
grid.newpage()
grid.draw(g)
对于查询 2,正如 @baptiste 爵士所说,在我给他的原始电子邮件中,我已经有了关于组合图的图例。但是,在图形标题中,我需要说明图例中的那些符号是什么意思,以及情节的其他一些细节。根据巴蒂斯特爵士给出的示例,我需要在标题中包含 supp 的含义以及 OJ(黑圈)和 VC(黑三角)的符号。
再次,非常感谢!
【问题讨论】:
-
以下内容应为斜体,如所述:
caption <- textGrob(expression(atop("Figure 1. This ", atop(italic("is ")), "a caption", hjust=0, x=0)))我建议您使用 dput() 创建可重现的数据并将其添加到您的问题中。目前还不清楚你的输出应该是什么样子,我也不清楚你想要数字 2 是什么。 -
我可能应该提一下,您要做的事情并非微不足道,所以除非有人自愿为您完成所有编码,并使用所有繁琐的小细节来获得您想要的情节,您将不得不花一些时间学习低级 gtable 和网格函数。或者,您可以考虑使用其他方法来制作图形标题,例如使用 LaTeX 或某些文本编辑器。一次性项目可能更容易。
-
附带说明,大多数情况下,图形标题是指带有纯文本描述的符号,而不是图片(但我确实看到了这种方法的潜在价值)。您的标题通常会显示为“图 1。红点对应于 1984 年的数据集,而空心方块来自 John 等人 [37]。”
-
this latex question 也可能是相关的