如何将字幕添加到annotate_figure图中?

时间:2019-09-30 01:06:46

标签: r ggplot2 gridextra ggpubr

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

我了解如何在顶部添加文本,但是如何添加两行,每行具有不同的字体(例如,顶部标题应为大/粗体,第二行/字幕应为较小的常规字体)?

这是我制作标题的方式。是否可以将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"))

1 个答案:

答案 0 :(得分:1)

您可以使用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创建