Nothing
## ---- include = FALSE----------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup---------------------------------------------------------------
library(factory)
## ----function to generalize----------------------------------------------
my_scale_color <- function(discrete = TRUE, reverse = FALSE, ...) {
my_palette <- c(
"#772277", "#333388", "#1144aa", "#55aa11",
"#f40000", "#f47a00", "#ffe314"
)
if (reverse) {
my_palette <- rev(my_palette)
}
pal <- colorRampPalette(my_palette, ...)
if (discrete) {
ggplot2::discrete_scale(
aesthetics = "colour",
scale_name = "my_color_scale",
palette = pal,
...
)
} else {
ggplot2::scale_color_gradientn(colors = pal(256),)
}
}
ggplot2::ggplot(mtcars) +
ggplot2::aes(x = mpg, y = cyl, color = factor(gear)) +
ggplot2::geom_point() +
my_scale_color()
## ----genericized function------------------------------------------------
my_scale_color_generic <- function(discrete = TRUE, reverse = FALSE, ...) {
my_palette <- this_palette
if (reverse) {
my_palette <- rev(my_palette)
}
pal <- colorRampPalette(my_palette, ...)
if (discrete) {
ggplot2::discrete_scale(
aesthetics = "colour",
scale_name = this_scale_name,
palette = pal,
...
)
} else {
ggplot2::scale_color_gradientn(colors = pal(256),)
}
}
## ----sample factory------------------------------------------------------
my_scale_color_factory <- build_factory(
fun = my_scale_color_generic,
this_palette,
this_scale_name = "my_color_scale"
)
## ----using the factor----------------------------------------------------
my_scale_color_factory(
this_palette = c(
"#772277", "#333388", "#1144aa", "#55aa11",
"#f40000", "#f47a00", "#ffe314"
)
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.