在 ggpubr::ggarrange 中更改组合图的背景颜色

Change background color of combined plots in ggpubr::ggarrange

我不明白为什么底角背景是白色的,而其余的情节是灰色的。无论如何,我可以将底角颜色更改为与情节其余部分相同的背景吗?

我为每个情节使用的代码是:

HP_specifikationer_model1 <- ggplot(Svar_spec_data)+geom_hline(yintercept=0)
geom_line(aes(y=HP1, x=kvartaler, color = "HP-BNP-KRE-REN")) +
geom_line(aes(y=HP2, x=kvartaler, color = "REN-KRE-HP-BNP")) +
geom_line(aes(y=HP3, x=kvartaler, color = "BNP-KRE-REN-HP")) +
geom_line(aes(y=HP4, x=kvartaler, color = "KRE-HP-REN-BNP")) +
geom_line(aes(y=HP5, x=kvartaler, color = "BNP-KRE-HP-REN")) +
geom_line(aes(y=HP6, x=kvartaler, color = "BNP-REN-HP-KRE")) +
geom_line(aes(y=HP7, x=kvartaler, color = "REN-HP-BNP-KRE")) +
scale_color_manual(name='Specifikation',
                 breaks=c('HP-BNP-KRE-REN', 'REN-KRE-HP-BNP', 'BNP-KRE-REN-HP',
                          'KRE-HP-REN-BNP', 'BNP-KRE-HP-REN', 'BNP-REN-HP-KRE',
                          'REN-HP-BNP-KRE'),
                 values=c('HP-BNP-KRE-REN'='red', 'REN-KRE-HP-BNP'='blue', 'BNP-KRE-REN-HP'='green',
                          'KRE-HP-REN-BNP'='cyan', 'BNP-KRE-HP-REN'='lightpink', 'BNP-REN-HP-KRE'='orange',
                          'REN-HP-BNP-KRE'='black'))+
labs(title = "Varrierende SVAR matricer ved stød til Boligpriserne", x="Lag (Måneder)", y="Respons fra boligprisen", caption = "Egne beregninger", color= T)+
theme(legend.position="right") + theme(panel.grid.minor.x = element_blank()) + th

代码末尾的th是用这段代码定义的:

th <- theme(title = element_text(colour = "#404040"),
        plot.background=element_rect(fill="#f3f3f3"),  
        panel.background = element_rect(fill="#f3f3f3"), 
        legend.background = element_rect(fill="#f3f3f3"),
        plot.subtitle = element_text(color="#666666"),
        plot.caption = element_text(color="#616161", size=9),
        legend.key = element_rect(fill = "#f3f3f3", colour = "#f3f3f3"),
        plot.margin = unit(c(0.5, 0.7, 0.5, 0.7), "cm"), 
        panel.border = element_rect(color = "black",
                                fill = NA,
                                size = 0.15))

我用来安排情节的代码是:

ggarrange(BNP_specifikationer_model1,
RENTE_specifikationer_model1,
KREDIT_specifikationer_model1,
HP_specifikationer_model1,
ncol=2, nrow=2, common.legend = TRUE, legend="bottom")

我认为在ggpubr中,你可以使用bgcolor

你也可以使用cowplot,such as in this thread

或拼凑而成,如下所示,优点是可以避免重复调用主题!

## Given that your data is not reproducible, here a made up example.

library(ggpubr)
#> Loading required package: ggplot2
# Create some plots - based on the example ?ggpubr::ggarrange
data("ToothGrowth")
df <- ToothGrowth
df$dose <- as.factor(df$dose)
bxp <- ggboxplot(df, x = "dose", y = "len",
                 color = "dose", palette = "jco")
dp <- ggdotplot(df, x = "dose", y = "len",
                color = "dose", palette = "jco")
dens <- ggdensity(df, x = "len", fill = "dose", palette = "jco")

# ::::::::::::::::::::::::::::::::::::::::::::::::::
ggarrange(bxp, dp, dens, ncol = 2, nrow = 2) + bgcolor("Grey")         
#> Bin width defaults to 1/30 of the range of the data. Pick better value with `binwidth`.

另一种选择,使用{patchwork},用& theme()

改变一般主题
library(patchwork)
bxp + dp + dens + plot_layout(ncol = 2) &
  theme(plot.background = element_rect(fill = "Grey"))
#> Bin width defaults to 1/30 of the range of the data. Pick better value with `binwidth`.

reprex package (v2.0.1)

于 2022-05-26 创建