Brandon Bertelsen
Brandon Bertelsen

Reputation: 44658

How to load themes and defaults on package load

I create convenience packages with functions specific to different companies that I work with. I'd like to be able to load ggplot2 themes and geom defaults when I load those libraries.

For example:

update_geom_defaults("line",   list(size = 2))
update_geom_defaults("bar",    list(fill="#BEBADA",colour="#000000"))
update_geom_defaults("text",   list(colour="#333333"))
scale_colour_discrete <- function(...) scale_colour_brewer(..., palette="Set2")
scale_fill_discrete <- function(...) scale_fill_brewer(... , palette="Set2")

Right now, I have to remember to retype this every time I do a quick analysis, and I'd like to make it more DRY.

How would I go about forcing these elements to load when the package does?

pseudocode:

library(convenience.lib)
## run the above ## 

Upvotes: 2

Views: 261

Answers (1)

Brandon Bertelsen
Brandon Bertelsen

Reputation: 44658

Simple add an .onLoad function to your package, for example:

.onLoad <- function(libname = find.package("mypackage"), pkgname = "mypackage") {
    update_geom_defaults("line",   list(size = 2))
    update_geom_defaults("bar",    list(fill="#BEBADA",colour="#000000"))
    update_geom_defaults("text",   list(colour="#333333"))
    scale_colour_discrete <- function(...) scale_colour_brewer(..., palette="Set2")
    scale_fill_discrete <- function(...) scale_fill_brewer(... , palette="Set2")
}

Upvotes: 1

Related Questions