为 ggplots 禁用 cowplot 默认值

Disable cowplot default for ggplots

ggplot2 附加包 cowplot 有一个很好的绘制多个图的函数,称为 plot_grid()。这是 plot_grid() 的实际效果:

library(ggplot2); library(cowplot)

plot_a <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
plot_b <- ggplot(mtcars, aes(mpg, disp)) + geom_point()

plot_grid(plot_a, plot_b, labels = c("A", "B"))

但请注意加载 cowplot 如何更改绘图的默认样式。如何加载 cowplot 包,以便我可以使用 plot_grid() 函数,同时禁用 cowplot 强制执行的默认绘图样式?

只需提前调用theme_set(theme_gray())

theme_set(theme_gray())
plot_grid(plot_a, plot_b, labels = c("A", "B"))

然后,如果您想疯狂使用主题,可以安装 ggthemes and simply replace theme_gray() with any theme you choose, or roll your own. Also see this vignette 来为单个元素设置样式。

如评论中所述,安装 cowplot 包后,您可以使用 :: 运算符加载 plot_grid() 函数(参见 What are the double colons (::) in R?)和cowplot 不会更改任何 ggplot2 默认值。

> plot_a <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
> plot_b <- ggplot(mtcars, aes(mpg, disp)) + geom_point()
> plot_grid(plot_a, plot_b, labels = c("A", "B"))
Error in plot_grid(plot_a, plot_b, labels = c("A", "B")) : 
  could not find function "plot_grid"

> cowplot::plot_grid(plot_a, plot_b, labels = c("A", "B"))

当您使用 library()require().

加载整个 cowplot 包时,问题就出现了