Отключить по умолчанию cowplot для 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?


person luciano    schedule 30.10.2015    source источник
comment
не могли бы вы загрузить cowplot, а затем просто использовать cowplot::plot_grid()?   -  person chandler    schedule 02.02.2017
comment
Нет -- как только вы вызовете library(cowplot), поведение ggplot изменится.   -  person eric_kernfeld    schedule 31.01.2018
comment
Начиная с версии 1.0 cowplot больше не устанавливает тему по умолчанию. wilkelab.org/cowplot/articles/introduction.html   -  person pbaylis    schedule 28.02.2020


Ответы (2)


Просто позвоните theme_set(theme_gray()) заранее:

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

Сюжет< /а>

Затем, если вы хотите сходить с ума по темам, вы можете установить ggthemes и просто заменить theme_gray() любой выбранной вами темой или свернуть свой своя. Также см. эту виньетку для оформления отдельных элементов.

person JasonAizkalns    schedule 30.10.2015

Как упоминалось в комментариях, после установки пакета 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"))

введите здесь описание изображения

Проблема возникает, когда вы загружаете весь пакет cowplot с помощью library() или require().

person Andrew Haynes    schedule 04.06.2018
comment
Хорошо ????, это только что спасло мой бекон. Это лучший ответ, чем принятый, поскольку он позволяет полностью избежать проблемы переопределения значений по умолчанию, а не пытаться переопределить переопределение... - person Michael MacAskill; 08.06.2019