R/theme_cv.R

Defines functions pal_gameboy2 pal_gameboy theme_baseplot theme_lattice theme_simple theme_gridpaper theme_gameboy2 theme_gameboy theme_sand2 theme_sand

Documented in pal_gameboy pal_gameboy2 theme_baseplot theme_gameboy theme_gameboy2 theme_gridpaper theme_lattice theme_sand theme_sand2 theme_simple

#' a ggplot2 theme with sand-like palette (version 1)
#'
#' @param base_size Default font size = 14
#' @param base_family Font family. Defaults to "serif"
#' @param base_line_size defaults to base_size/22
#' @param base_rect_size defaults to base_size/22
#' @export
#' @return nothing
#' @examples
#' theme_set(theme_sand())
theme_sand = function(base_size = 14, base_family = "serif", base_line_size = base_size/22,
                      base_rect_size = base_size/22)
{
  theme_bw(base_size = base_size, base_family = base_family,
           base_line_size = base_line_size, base_rect_size = base_rect_size) %+replace%
    theme(axis.ticks = element_blank(), legend.background = element_blank(),
          legend.key = element_blank(), panel.background = element_rect(fill = "#f7f5f2A8",
                                                                        colour = "#f7f5f2A8",
                                                                        size = 0.5, linetype = "solid"),
          panel.border = element_blank(), strip.background = element_rect(colour="#a99e991A", fill="#b59b8e1A"),
          axis.title.y = element_text(angle = 90, margin = ggplot2::margin(t = 0, r = 15, b = 0, l = 0)),
          axis.title.x = element_text(margin = ggplot2::margin(t = 15, r = 0, b = 0, l = 0)),
          strip.text.x = element_text(color = "#52361b", size = floor(base_size * .85), margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          strip.text.y = element_text(color = "#52361b", size = floor(base_size * .85), angle = 90, margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),          plot.background = element_rect(fill = "#fffaeb8F"),
          panel.grid.major = element_line(size = 0.65, linetype = 'solid', colour = "#ffffff"),
          panel.grid.minor = element_line(size = 0.65, linetype = 'solid', colour = "#ffffff"), complete = TRUE)
}


#' a ggplot2 theme with sand-like palette (version 2)
#'
#' @param base_size Default font size = 14
#' @param base_family Font family. Defaults to "serif"
#' @param base_line_size defaults to base_size/22
#' @param base_rect_size defaults to base_size/22
#' @export
#' @return nothing
#' @examples
#' theme_set(theme_sand2())
theme_sand2 = function(base_size = 14, base_family = "serif", base_line_size = base_size/22,
                    base_rect_size = base_size/22)
{
  theme_bw(base_size = base_size, base_family = base_family,
           base_line_size = base_line_size, base_rect_size = base_rect_size) %+replace%
    theme(axis.ticks = element_blank(), legend.background = element_blank(),
          legend.key = element_blank(), panel.background = element_rect(fill = "#fffaebBD",
                                                                        colour = "#fffaebBD",
                                                                        size = 0.5, linetype = "solid"),
          axis.title.y = element_text(angle = 90, margin = ggplot2::margin(t = 0, r = 15, b = 0, l = 0)),
          axis.title.x = element_text(margin = ggplot2::margin(t = 15, r = 0, b = 0, l = 0)),
          axis.line = element_line(colour = "#e7d9c7"),
          strip.background = element_rect(colour="#a99e995E", fill="#b59b8e33"),
          strip.text.x = element_text(color = "#52361b", size = floor(base_size * .85), margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          strip.text.y = element_text(color = "#52361b", size = floor(base_size * .85), angle = 90, margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          panel.border = element_blank(),
          plot.background = element_rect(fill = "#fffaeb40"),
          panel.grid.major = element_line(size = 0.65, linetype = 'dashed', colour = "#dbd7d28F"),
          panel.grid.minor = element_line(size = 0.65, linetype = 'dashed', colour = "#dbd7d28F"), complete = TRUE)
}



#' a ggplot2 theme based on the game boy classic screen
#'
#' @param base_size Default font size = 14
#' @param base_family Font family. Defaults to "serif"
#' @param base_line_size defaults to base_size/22
#' @param base_rect_size defaults to base_size/22
#' @export
#' @return nothing
#' @examples
#' theme_set(theme_gameboy())
theme_gameboy = function(base_size = 14, base_family = "serif", base_line_size = base_size/20,
                     base_rect_size = base_size/20)
{
  theme_bw(base_size = base_size, base_family = base_family,
           base_line_size = base_line_size, base_rect_size = base_rect_size) %+replace%
    theme(axis.ticks = element_blank(),
          axis.title.y = element_text(color = "#2D3F2D", angle = 90, margin = ggplot2::margin(t = 0, r = 12, b = 0, l = 0)),
          axis.title.x = element_text(color = "#2D3F2D", margin = ggplot2::margin(t = 7, r = 0, b = -1, l = 0)),
          legend.position = "right",
          legend.background = element_blank(),
          legend.text = element_text(size = floor(base_size * 0.80)),
          legend.title = element_text(size = floor(base_size * 0.90)),

          legend.key = element_blank(), panel.background = element_rect(fill = "#788527",
                                                                        colour = "#859608",
                                                                        size = 0.5,
                                                                        linetype = "solid"),
          axis.line = element_line(colour = "#859608"),
          strip.background = element_rect(colour="#394221", fill="#4F532D"),
          strip.text.x = element_text(color = "#9BAD9B", size = floor(base_size * .85), margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          strip.text.y = element_text(color = "#9BAD9B", size = floor(base_size * .85), angle = 90, margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          panel.border = element_blank(),
          plot.background = element_rect(fill = "#a1ad15"),
          panel.grid.major = element_line(size = 0.65, linetype = 11, colour = "#82924C80"),
          panel.grid.minor = element_line(size = 0.65, linetype = 11, colour = "#82924C80"), complete = TRUE)
}


#' a ggplot2 theme based on the gameboy light screen
#'
#' @param base_size Default font size = 14
#' @param base_family Font family. Defaults to "serif"
#' @param base_line_size defaults to base_size/22
#' @param base_rect_size defaults to base_size/22
#' @export
#' @return nothing
#' @examples
#' theme_set(theme_gameboy2())
theme_gameboy2 = function(base_size = 14, base_family = "serif", base_line_size = base_size/20,
                         base_rect_size = base_size/20)
{
  theme_bw(base_size = base_size, base_family = base_family,
           base_line_size = base_line_size, base_rect_size = base_rect_size) %+replace%
    theme(axis.ticks = element_blank(),
          axis.title.y = element_text(angle = 90, margin = ggplot2::margin(t = 0, r = 15, b = 0, l = 0)),
          axis.title.x = element_text(margin = ggplot2::margin(t = 15, r = 0, b = 0, l = 0)),

          legend.background = element_blank(),
          legend.key = element_blank(), panel.background = element_rect(fill = "#358e9466",
                                                                        colour = "#08699666",
                                                                        size = 0.5,
                                                                        linetype = "solid"),
          axis.line = element_line(colour = "#2abcc9CC"),
          strip.background = element_rect(colour="#09211dE6", fill="#0d2a28E6"),
          strip.text.x = element_text(color = "#1a568b", size = floor(base_size * .85), margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          strip.text.y = element_text(color = "#1a568b", size = floor(base_size * .85), angle = 90, margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          panel.border = element_blank(),
          plot.background = element_rect(fill = "#21b3c1BF"),
          panel.grid.major = element_line(size = 0.75, linetype = 11, colour = "#88bab466"),
          panel.grid.minor = element_line(size = 0.75, linetype = 11, colour = "#88bab466"), complete = TRUE)
}


#' a ggplot2 theme that looks like graph paper
#'
#' @param base_size Default font size = 14
#' @param base_family Font family. Defaults to "serif"
#' @param base_line_size defaults to base_size/22
#' @param base_rect_size defaults to base_size/22
#' @export
#' @return nothing
#' @examples
#' theme_set(theme_gridpaper())
theme_gridpaper = function(base_size = 14, base_family = "serif", base_line_size = base_size/20,
                          base_rect_size = base_size/20)
{
  theme_bw(base_size = base_size, base_family = base_family,
           base_line_size = base_line_size, base_rect_size = base_rect_size) %+replace%
    theme(axis.ticks = element_blank(),
          axis.title.y = element_text(angle = 90, margin = ggplot2::margin(t = 0, r = 15, b = 0, l = 0)),
          axis.title.x = element_text(margin = ggplot2::margin(t = 15, r = 0, b = 0, l = 0)),
          legend.background = element_blank(),
          legend.key = element_blank(), panel.background = element_rect(fill = "#f6faf05C",
                                                                        colour = "#f6faf05C"),
          axis.line = element_blank(),
          strip.background = element_rect(colour="#09211dE6", fill="#edf9f6E6"),
          strip.text.x = element_text(color = "#113125", size = floor(base_size * .85), margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          strip.text.y = element_text(color = "#113125", size = floor(base_size * .85), angle = 90, margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          panel.border = element_blank(),
          plot.background = element_rect(fill = "#fbfcfa4D"),
          panel.grid.major = element_line(size = 0.85, linetype = "solid", colour = "#a8e3a8D1"),
          panel.grid.minor = element_line(size = 0.70, linetype = "solid", colour = "#a8e3a8B5"),
          complete = TRUE)
}

#' a simple ggplot2 theme
#'
#' @param base_size Default font size = 14
#' @param base_family Font family. Defaults to "serif"
#' @param base_line_size defaults to base_size/22
#' @param base_rect_size defaults to base_size/22
#' @export
#' @return nothing
#' @examples
#' theme_set(theme_simple())
theme_simple = function(base_size = 14, base_family = "serif", base_line_size = base_size/20, base_rect_size = base_size/20)
{
  theme_bw(base_size = base_size, base_family = base_family,
           base_line_size = base_line_size, base_rect_size = base_rect_size) %+replace%
    theme(axis.ticks = element_blank(),
          axis.title.y = element_text(angle = 90, margin = ggplot2::margin(t = 0, r = 15, b = 0, l = 0)),
          axis.title.x = element_text(margin = ggplot2::margin(t = 15, r = 0, b = 0, l = 0)),
          legend.background = element_blank(),
          legend.key = element_blank(), panel.background = element_rect(fill = "#fefff133",
                                                                        colour = "#fefff133"),
          axis.line = element_blank(),
          strip.background = element_rect(colour="#fefff1", fill="#fefff1"),
          strip.text.x = element_text(color = "#15001e", size = floor(base_size * .85), margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          strip.text.y = element_text(color = "#15001e", size = floor(base_size * .85), angle = 90, margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          panel.border = element_blank(),
          plot.background = element_rect(fill = "#fefff133"),
          panel.grid.major = element_line(size = 0.70, linetype = "dotted", colour = "#15001eB3"),
          panel.grid.minor = element_line(size = 0.70, linetype = "dotted", colour = "#15001eB3"),
          complete = TRUE)
}

#' a lattice graphics inspired ggplot2 theme
#'
#' @param base_size Default font size = 14
#' @param base_family Font family. Defaults to "sans"
#' @param base_line_size defaults to base_size/22
#' @param base_rect_size defaults to base_size/22
#' @export
#' @return nothing
#' @examples
#' theme_set(theme_lattice())
theme_lattice = function(base_size = 14, base_family = "sans", base_line_size = base_size/20, base_rect_size = base_size/15) {

  theme_bw(base_size = base_size, base_family = base_family,
                    base_line_size = base_line_size, base_rect_size = base_rect_size) %+replace%
  theme(axis.text = element_text(color = "black", size = floor(base_size * 0.70)),
        axis.ticks.length = unit(.1250, "cm"),
        axis.line.y.left = element_line(colour = "black", size = 0.25, linetype = "solid"),
        axis.line.x.bottom = element_line(colour = "black", size = 0.01, linetype = "solid"),
        axis.line.y.right = element_line(colour = "black", size = 0.01, linetype = "solid"),
        axis.line.x.top = element_line(colour = "black", size = 0.25, linetype = "solid"),
        axis.title.y = element_text(size = floor(base_size * .90), angle = 90, margin = ggplot2::margin(t = 0, r = 15, b = 0, l = 0)),
        axis.title.x = element_text(size = floor(base_size * .90), margin = ggplot2::margin(t = 15, r = 0, b = 0, l = 0)),
        legend.background = element_blank(),
        legend.key = element_blank(),
        panel.grid.major = element_line(size = 0.50, linetype = "solid", colour = "#cacaca8F"),
        panel.grid.minor = element_line(size = 0.50, linetype = "solid", colour = "#cacaca8F"),
        panel.background = element_rect(fill = "#ffffff"),
        panel.border = element_rect(linetype = "solid", colour = "black", fill = NA, size = 0.5),
        strip.background = element_rect(fill = "#ffe5cc"),
        strip.text.x = element_text(color = "#353232", size = floor(base_size * .6925), margin = ggplot2::margin(b = base_size / 6.5, t = base_size / 6.5)),
        strip.text.y = element_text(color = "#353232", size = floor(base_size * .6925), angle = 90, margin = ggplot2::margin( b = base_size / 6.5, t = base_size / 6.5))
        , complete = TRUE)
}


#' a lattice graphics inspired ggplot2 theme
#'
#' @param base_size Default font size = 14
#' @param base_family Font family. Defaults to "sans"
#' @param base_line_size defaults to base_size/22
#' @param base_rect_size defaults to base_size/22
#' @export
#' @return nothing
#' @examples
#' theme_set(theme_baseplot())
theme_baseplot <- function(base_size = 14, base_family = "sans", base_line_size = base_size/20, base_rect_size = base_size/20) {
  theme_bw(base_size = base_size, base_family = base_family,
           base_line_size = base_line_size, base_rect_size = base_rect_size) %+replace%
    theme(panel.grid = element_blank(),
          panel.border = element_rect(linetype = "solid", colour = "black", fill = NA, size = 0.5),
          strip.background = element_rect(fill = "white"),
          strip.text.x = element_text(color = "black", size = floor(base_size * .8125), margin = ggplot2::margin(b = base_size / 6, t = base_size / 6)),
          strip.text.y = element_text(color = "black", size = floor(base_size * .8125), angle = 90, margin = ggplot2::margin( b = base_size / 6, t = base_size / 6)),
          legend.position = "right",
          legend.background = element_blank(),
          legend.key = element_blank(),
          legend.text = element_text(size = floor(base_size * 0.80)),
          legend.title = element_text(size = floor(base_size * 0.90)),
          title = element_text(size = rel(1)),
          plot.title = element_text(size = rel(1.2), face = "bold"),
          strip.text = element_text(),
          axis.ticks.length = unit(0.5, "lines"),
          axis.title.y = element_text(angle = 90, size = floor(base_size * 0.95), margin = ggplot2::margin(t = 0, r = 15, b = 0, l = 0)),
          axis.title.x = element_text(size = floor(base_size * 0.95), margin = ggplot2::margin(t = 15, r = 0, b = 0, l = 0))
          , complete = TRUE
    )
}






#' A color palette for theme_gameboy
#'
#' @param n number of colors
#'
#' @return
#' a vector of colors
#' @export
#'
#' @examples
#' pal_gameboy(10)
pal_gameboy = function(n){
  grDevices::colorRampPalette(c("#cadc9f", "#30391A"))(n)
}

#' A color palette for theme_gameboy2
#'
#' @param n number of colors
#'
#' @return
#' a vector of colors
#' @export
#'
#' @examples
#' pal_gameboy2(10)
pal_gameboy2 = function(n){
  grDevices::colorRampPalette(c("#9feddb", "#235d5e"))(n)
}
abnormally-distributed/cvreg documentation built on May 3, 2020, 3:45 p.m.