带副标题的标题如何添加annotate_figure?

How can a title with subtitle be added with annotate_figure?

我正在使用 ggarrangeannotate_figure 来显示两个图 side-by-side。在我的实际代码中,每个子图都有不同的标题,但整个图的顶部需要一个通用的标题和副标题。

我知道如何在顶部添加文本,但我如何添加两行,每行都有不同的字体(例如,最上面的标题应该是 large/bold,第二个 line/subtitle 应该是较小的常规字体)?

这是我制作标题的方式。有没有办法将 text_grob 添加到 top

library(tidyverse)
library(ggpubr)

df <- data.frame()
plot1 <- ggplot(df) + geom_point() + xlim(0, 10) + ylim(0, 100)
plot2 <- ggplot(df) + geom_point() + xlim(0, 10) + ylim(0, 100)

all.plots <- ggarrange(plot1, plot2)
annotate_figure(all.plots,
                top=text_grob("Antibiotic Effectiveness"))

您可以使用 plotmath 为 text_grob 创建表达式。参见 ?plotmath。

library(tidyverse)
library(ggpubr)

df <- data.frame(x=runif(10,0,10), y=runif(10,0,100))
plot1 <- ggplot(df) + geom_point(aes(x=x, y=y)) + xlim(0, 10) + ylim(0, 100)
plot2 <- ggplot(df) + geom_point(aes(x=x, y=y)) + xlim(0, 10) + ylim(0, 100)

all.plots <- ggarrange(plot1, plot2)
# construct plotmath expression
title <- expression(atop(bold("Figure 1:"), scriptstyle("This is the caption")))
annotate_figure(all.plots,
                top=text_grob(title))

reprex package (v0.3.0)

创建于 2019-10-02