禁用cowplot默认设置,应用于ggplots。

12

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强制执行的默认绘图样式?


1
你能不能不加载 cowplot,然后直接使用 cowplot::plot_grid() - chandler
当您调用library(cowplot)时,ggplot的行为会发生改变,因此不会返回“--”。 - eric_kernfeld
从1.0版本开始,cowplot不再设置默认主题。https://wilkelab.org/cowplot/articles/introduction.html - pbaylis
2个回答

11

只需事先调用 theme_set(theme_gray())

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

绘图

如果您想要更多主题,您可以安装ggthemes,并将theme_gray()替换为您选择的任何主题或自定义主题。另外,请参阅 此文献资料 以样式化单个元素。


2
如评论中提到的,一旦您安装了cowplot包,您就可以使用::运算符加载plot_grid()函数(详见什么是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包时,问题就出现了。

enter image description here


太好了,这刚刚救了我的命。这是一个比被接受的答案更好的答案,因为它完全避免了覆盖默认值的问题,而不是试图覆盖覆盖... - Michael MacAskill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接