禁用ggplots的cowplot默认值
Posted
技术标签:
【中文标题】禁用ggplots的cowplot默认值【英文标题】:Disable cowplot default for ggplots 【发布时间】:2016-01-31 00:19:19 【问题描述】: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
强制执行的默认绘图样式?
【问题讨论】:
你能不加载cowplot
然后只使用cowplot::plot_grid()
吗?
不——只要你打电话给library(cowplot)
,ggplot 的行为就会改变。
从 1.0 版开始,cowplot 不再设置默认主题。 wilkelab.org/cowplot/articles/introduction.html
【参考方案1】:
如 cmets 中所述,一旦您安装了 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
包时会出现问题。
【讨论】:
很好 ?,这救了我的培根。这是一个比公认的更好的答案,因为它避免了完全覆盖默认值的问题,而不是试图覆盖覆盖......【参考方案2】:只需提前致电theme_set(theme_gray())
:
theme_set(theme_gray())
plot_grid(plot_a, plot_b, labels = c("A", "B"))
然后,如果您想疯狂地使用主题,您可以安装 ggthemes
并简单地将 theme_gray()
替换为您选择的任何主题,或者滚动您自己的主题。另请参阅 this vignette 了解单个元素的样式。
【讨论】:
以上是关于禁用ggplots的cowplot默认值的主要内容,如果未能解决你的问题,请参考以下文章
ggplot2 vs cowplot,FUN 中的错误(“text”[[1L]],...):