davidhodge931 / ggblanket

Simplify ggplot2 visualisation
https://davidhodge931.github.io/ggblanket/
Other
156 stars 8 forks source link

legend redesign #546

Closed davidhodge931 closed 10 months ago

davidhodge931 commented 11 months ago
library(palmerpenguins)
library(tidyverse)
#> Warning: package 'ggplot2' was built under R version 4.3.2
#> Warning: package 'purrr' was built under R version 4.3.1
#> Warning: package 'dplyr' was built under R version 4.3.1
#> Warning: package 'forcats' was built under R version 4.3.2
#> Warning: package 'lubridate' was built under R version 4.3.1
library(ggblanket)
#> Loading required package: viridisLite
# devtools::load_all()

base_size <- 11

p <- penguins |>
  gg_point(
    x = flipper_length_mm,
    y = body_mass_g,
    col = species,
    facet = sex,
    col_labels = stringr::str_to_sentence,
    theme = light_mode(base_size)
    # title = "Penguin body mass by flipper length and species",
    # subtitle = "Palmer Archipelago, Antarctica",
    # col_title = ""
  )

p +
  ggplot2::theme(legend.position = "top") +
  ggplot2::theme(legend.direction = "horizontal") +
  ggplot2::theme(legend.justification = "left") +
  ggplot2::theme(legend.margin = ggplot2::margin(t = -12.5, r = 20, b = 5)) +
  ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.75, b = base_size * 0))) +
  ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(r = 10 * 1.5))) #+
#> Warning: Removed 2 rows containing missing values (`geom_point()`).

  # ggplot2::theme(legend.location = "plot") #DEV version feature

p +
  ggplot2::theme(legend.position = "bottom") +
  ggplot2::theme(legend.direction = "horizontal") +
  ggplot2::theme(legend.justification = "left") +
  ggplot2::theme(legend.margin = ggplot2::margin(r = base_size * 2, b = base_size * 0.25)) +
  ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.5, b = base_size * 0.1))) +
  ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(r = base_size * 1.5))) #+
#> Warning: Removed 2 rows containing missing values (`geom_point()`).

  # ggplot2::theme(legend.location = "plot") #DEV version feature

p +
  ggplot2::theme(legend.position = "right") +
  ggplot2::theme(legend.direction = "vertical") +
  ggplot2::theme(legend.justification = "left") +
  ggplot2::theme(legend.margin = ggplot2::margin(l = 7.5)) +
  ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 5))) +
  ggplot2::theme(legend.text = ggplot2::element_text(margin = margin()))
#> Warning: Removed 2 rows containing missing values (`geom_point()`).


p +
  ggplot2::theme(legend.position = "right") +
  ggplot2::theme(legend.direction = "vertical") +
  ggplot2::theme(legend.justification = "top") +
  ggplot2::theme(legend.margin = ggplot2::margin(l = 7.5)) +
  ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0, margin = ggplot2::margin(t = 0))) +
  ggplot2::theme(legend.text = ggplot2::element_text(margin = margin()))
#> Warning: Removed 2 rows containing missing values (`geom_point()`).


penguins |>
  gg_point(
    x = flipper_length_mm,
    y = body_mass_g,
    col = species,
    theme = light_mode(base_size)) +
  ggplot2::theme(legend.position = c(0.125, 0.775)) +
  # ggplot2::theme(legend.position = "inside") + #new DEV code
  # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code
  ggplot2::theme(legend.direction = "vertical") +
  ggplot2::theme(legend.justification = NULL) +
  ggplot2::theme(legend.margin = ggplot2::margin(l = 7.5, r = 0, t = 2.5, b = 7.5)) +
  ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 2.5))) +
  ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(r = 7.5))) +
  ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_light_mode[4], fill = ggblanket:::pal_light_mode[2])) +
  ggplot2::theme(legend.key = element_rect(fill = ggblanket:::pal_light_mode[3]))
#> Warning: Removed 2 rows containing missing values (`geom_point()`).


penguins |>
  gg_point(
    x = flipper_length_mm,
    y = body_mass_g,
    col = species,
    theme = dark_mode(base_size)) +
  ggplot2::theme(legend.position = c(0.125, 0.775)) +
  # ggplot2::theme(legend.position = "inside") + #new DEV code
  # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code
  ggplot2::theme(legend.direction = "vertical") +
  ggplot2::theme(legend.justification = NULL) +
  ggplot2::theme(legend.margin = ggplot2::margin(l = 7.5, r = 0, t = 2.5, b = 7.5)) +
  ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 2.5))) +
  ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(r = 7.5))) +
  ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_dark_mode[4], fill = ggblanket:::pal_dark_mode[2])) +
  ggplot2::theme(legend.key = element_rect(fill = ggblanket:::pal_dark_mode[3]))
#> Warning: Removed 2 rows containing missing values (`geom_point()`).

Created on 2023-11-24 with reprex v2.0.2

davidhodge931 commented 11 months ago
light_mode_b(11)
light_mode_r(11)
light_mode_rt(11)
light_mode_t(11)
light_mode_i(11)

lightmode_b(11)
lightmode_r(11)
lightmode_rt(11)
lightmode_t(11)
lightmode_i(11)

light_mode_bottom(11)
light_mode_right(11)
light_mode_right_top(11)
light_mode_top(11)
light_mode_inside(11)

lightmode_bottom(11)
lightmode_right(11)
lightmode_right_top(11)
lightmode_top(11)
lightmode_inside(11)
davidhodge931 commented 11 months ago
library(palmerpenguins)
library(tidyverse)
library(ggblanket)

light_mode_t <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "top") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.margin = ggplot2::margin(t = -12.5, r = 20, b = 5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.75, b = base_size * 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(r = 10 * 1.5))) 
}

light_mode_b <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "bottom") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.margin = ggplot2::margin(r = base_size * 2, b = base_size * 0.25)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.5, b = base_size * 0.1))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(r = base_size * 1.5))) 
}

light_mode_r <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.margin = ggplot2::margin(l = 7.5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 5))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin()))
}

light_mode_rt <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "top") +
    ggplot2::theme(legend.margin = ggplot2::margin(l = 7.5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0.5, margin = ggplot2::margin(t = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin()))
}

light_mode_i <- function(legend_position = c(0.125, 0.775)) {
  light_mode() +
    ggplot2::theme(legend.position = legend_position) +
    # ggplot2::theme(legend.position = "inside") + #new DEV code
    # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = NULL) +
    ggplot2::theme(legend.margin = ggplot2::margin(l = 7.5, r = 0, t = 2.5, b = 7.5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 2.5))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(r = 7.5))) +
    ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_light_mode[4], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(legend.key = element_rect(fill = ggblanket:::pal_light_mode[3]))
}

base_size <- 11

penguins |>
  gg_col(
    x = species,
    y = body_mass_g,
    col = species,
    stat= "summary",
    facet = sex,
    col_labels = stringr::str_to_sentence,
    # theme = light_mode_b()
  )

p + light_mode_t()
p + light_mode_b()
p + light_mode_r()
p + light_mode_rt()
p + light_mode_i()
davidhodge931 commented 11 months ago
library(palmerpenguins)
library(tidyverse)
library(ggblanket)

light_mode_t <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "top") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = -2.5)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = -12.5, r = 20, b = 5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.75, b = base_size * 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(r = 10 * 1.5)))
}

light_mode_b <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "bottom") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = -2.5, b = -2.5)) +
    ggplot2::theme(legend.margin = ggplot2::margin(r = base_size * 2, b = base_size * 0.25)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.5, b = base_size * 0.1))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(r = base_size * 1.5)))
}

light_mode_r <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(l = 7.5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 5))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin()))
}

light_mode_rt <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "top") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(l = 7.5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0.5, margin = ggplot2::margin(t = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin()))
}

light_mode_i <- function(legend_position = c(0.5, 0.5)) {
  light_mode() +
    ggplot2::theme(legend.position = legend_position) +
    # ggplot2::theme(legend.position = "inside") + #new DEV code
    # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = NULL) +
    ggplot2::theme(legend.margin = ggplot2::margin(l = 7.5, r = 0, t = 2.5, b = 7.5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 2.5))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(r = 7.5))) +
    ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_light_mode[4], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(legend.key = element_rect(fill = ggblanket:::pal_light_mode[3]))
}

base_size <- 11

p <- penguins |>
  gg_point(
    x = flipper_length_mm,
    y = body_mass_g,
    col = species,
    # facet = sex,
    col_labels = stringr::str_to_sentence,
    # theme = light_mode_b()
  )

p + light_mode_b()
p + light_mode_t()
p + light_mode_r()
p + light_mode_rt()
p + light_mode_i()
davidhodge931 commented 11 months ago
library(palmerpenguins)
library(tidyverse)
library(ggblanket)

light_mode_t <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "top") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * -0.25)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * -1.25, r = base_size * 2, b = base_size * 0.5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.75, b = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(r = base_size * 1.5)))
}

light_mode_b <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "bottom") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * -0.25, b = base_size * -0.25)) +
    ggplot2::theme(legend.margin = ggplot2::margin(r = base_size * 2, b = base_size * 0.25)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.5, b = base_size * 0.1))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(r = base_size * 1.5)))
}

light_mode_r <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = 0)))
}

light_mode_rt <- function() {
  light_mode() +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "top") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0.5, margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = 0)))
}

light_mode_i <- function(legend_position = c(0.5, 0.5)) {
  light_mode() +
    ggplot2::theme(legend.position = legend_position) +
    # ggplot2::theme(legend.position = "inside") + #new DEV code
    # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = NULL) +
    ggplot2::theme(legend.margin = ggplot2::margin(l = base_size * 0.75, r = 0, t = base_size * 0.25, b = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.25, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = base_size * 0.75, b = 0, l = 0))) +
    ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_light_mode[4], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(legend.key = element_rect(fill = ggblanket:::pal_light_mode[3]))
}

base_size <- 11

p <- penguins |>
  gg_point(
    x = flipper_length_mm,
    y = body_mass_g,
    col = species,
    facet = sex,
    col_labels = stringr::str_to_sentence,
    col_title = "",
    theme = light_mode_b()
  )

p + light_mode_b()
p + light_mode_t()
p + light_mode_r()
p + light_mode_rt()
p + light_mode_i()
davidhodge931 commented 11 months ago
library(palmerpenguins)
library(tidyverse)
library(ggblanket)

light_mode_t <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "top") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * -0.2, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * -1.25, r = base_size * 2, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0, margin = ggplot2::margin(t = base_size * 0.75, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1.5, b = 0, l = 0)))
}

light_mode_b <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "bottom") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * -0.25, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(r = base_size * 2, b = base_size * 0.25)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0, margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = base_size * 0.1, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1.5, b = 0, l = 0)))
}

light_mode_r <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 1, margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = 0)))
}

light_mode_rt <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "top") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 1, margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = 0)))
}

light_mode_i <- function(theme, base_size, legend_position = c(0.5, 0.5)) {
  theme +
    ggplot2::theme(legend.position = legend_position) +
    # ggplot2::theme(legend.position = "inside") + #new DEV code
    # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = NULL) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * 0.25, r = base_size * 0.33, b = base_size * 0.66, l = base_size * 0.5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 1, margin = ggplot2::margin(t = base_size * 0.25, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = base_size * 0.75, b = 0, l = 0))) +
    ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_light_mode[4], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(legend.key = element_rect(fill = ggblanket:::pal_light_mode[2]))
}

base_size <- 11
base_size <- 13
base_size <- 15

theme <- light_mode(base_size = base_size)

# showtext::showtext_auto(enable = TRUE)
# sysfonts::font_add_google("Covered By Your Grace", "grace")
# sysfonts::font_add_google('Roboto Slab', 'roboto_slab')
# sysfonts::font_add_google('Roboto', 'roboto')
# theme <- dark_mode(base_size = base_size)

# theme <-  light_mode(
#   base_size = base_size,
#   base_family = "roboto",
#   title_family = "roboto_slab",
#   subtitle_family = "roboto"
# )
p <- penguins |>
  gg_point(
    x = flipper_length_mm,
    y = body_mass_g,
    col = species,
    # facet = sex,
    col_title = "",
    title = "Blah blah penguins blah",
    subtitle = "Blah blah penguins blah",
  )

extra <- theme()
# extra <- theme(legend.key.size = grid::unit(base_size * 1.75, "pt")) +
#   ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0.5))

p +
  light_mode_r(theme, base_size) +
  extra +
  ggeasy::easy_remove_gridlines("x")

p + light_mode_rt(theme, base_size) +
  extra +
  ggeasy::easy_remove_gridlines("x")

p +
  light_mode_t(theme, base_size) +
  extra +
  ggeasy::easy_remove_gridlines("x")

p +
  light_mode_b(theme, base_size) +
  extra +
  ggeasy::easy_remove_gridlines("x")

p +
  light_mode_i(theme, base_size) +
  extra +
  ggeasy::easy_remove_gridlines("x")
davidhodge931 commented 11 months ago
library(palmerpenguins)
library(tidyverse)
library(ggblanket)

light_mode_t <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "top") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * -1.25, r = base_size * 2, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * -1.5, r = base_size * 2, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0, margin = ggplot2::margin(t = base_size * 0.25, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1.5, b = 0, l = 0)))
}

light_mode_b <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "bottom") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * -0.25, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(r = base_size * 2, b = base_size * 0.25)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0, margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = base_size * 0.1, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1.5, b = 0, l = 0)))
}

light_mode_r <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.75, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 1, margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = 0)))
}

light_mode_rt <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "top") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.75, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 1, margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = 0)))
}

light_mode_i <- function(theme, base_size, legend_position = c(0.5, 0.5)) {
  theme +
    ggplot2::theme(legend.position = legend_position) +
    # ggplot2::theme(legend.position = "inside") + #new DEV code
    # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = NULL) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * 0.25, r = base_size * 0.33, b = base_size * 0.66, l = base_size * 0.5)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 1, margin = ggplot2::margin(t = base_size * 0.25, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = base_size * 0.75, b = 0, l = 0))) +
    ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_light_mode[4], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(legend.key = element_rect(fill = ggblanket:::pal_light_mode[2]))
}
davidhodge931 commented 11 months ago
library(palmerpenguins)
library(tidyverse)
# library(ggblanket)
devtools::load_all()

light_mode_t <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "top") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * -1.25, r = base_size * 2, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * -1.5, r = base_size * 2, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0, margin = ggplot2::margin(t = base_size * 0.25, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1.5, b = 0, l = 0)))
}

light_mode_b <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "bottom") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * -0.25, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(r = base_size * 2, b = base_size * 0.25)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 0, margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = base_size * 0.1, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1.5, b = 0, l = 0)))
}

light_mode_r <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.75, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 1, margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = 0)))
}

light_mode_rt <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "top") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.75, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(vjust = 1, margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = 0)))
}

light_mode_i <- function(theme, base_size, legend_position = c(0.5, 0.5)) {
  theme +
    ggplot2::theme(legend.position = legend_position) +
    # ggplot2::theme(legend.position = "inside") + #new DEV code
    # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = NULL) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * 0.66, r = base_size * 0.33, b = base_size * 0.66, l = base_size * 0.5)) +
    ggplot2::theme(legend.title = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = base_size * 0.75, b = 0, l = 0))) +
    ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_light_mode[4], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(legend.key = element_rect(fill = ggblanket:::pal_light_mode[2]))
}

base_size <- 11
# base_size <- 13
# base_size <- 15

theme <- light_mode(base_size = base_size)

# devtools::load_all()

p <- penguins |>
  gg_point2(
    x = flipper_length_mm,
    y = body_mass_g,
    col = sex,
    # mapping = aes(shape = sex),
    position = "jitter",
    col_title = "",
    col_labels = str_to_sentence,
    facet = species,
    width = 0.75,
    title = "Blah blah penguins blah",
    subtitle = "Blah blah penguins blah",
  ) +
  light_mode_rt(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")

p <- penguins |>
  group_by(sex, species) |>
  summarise(flipper_length_mm = mean(flipper_length_mm, na.rm = TRUE)) |>
  tidyr::drop_na(sex) |>
  mutate(species = stringr::str_to_sentence(species)) |>
  gg_col2(
    x = flipper_length_mm,
    y = species,
    col = sex,
    width = 0.75,
    position = "dodge",
    # col_title = "",
  )

p +
  light_mode_t(theme, base_size) +
  ggeasy::easy_remove_gridlines("x") +
  theme(legend.title = element_text(margin = margin(t = base_size * 0.25, r = 0, b = base_size * 0.5, l = 0))) +
  theme(legend.text = element_text(margin = margin(t = base_size * 0.5, r = base_size * 1.25, b = base_size * 0.5, l = base_size * 0.5)))

p +
  light_mode_b(theme, base_size) +
  ggeasy::easy_remove_gridlines("x") +
  theme(legend.title = element_text(margin = margin(t = base_size * 0.25, r = 0, b = base_size * 0.5, l = 0))) +
  theme(legend.text = element_text(margin = margin(t = base_size * 0.5, r = base_size * 1.25, b = base_size * 0.5, l = base_size * 0.5)))

p +
  light_mode_r(theme, base_size) +
  ggeasy::easy_remove_gridlines("x") +
  theme(legend.title = element_text(margin = margin(t = base_size * 0.25, r = 0, b = base_size * 0.5, l = 0))) +
  theme(legend.text = element_text(margin = margin(t = base_size * 0.1, r = 0, b = base_size * 0.1, l = base_size * 0.5)))

p +
  light_mode_rt(theme, base_size) +
  ggeasy::easy_remove_gridlines("x") +
  theme(legend.title = element_text(margin = margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
  theme(legend.text = element_text(margin = margin(t = base_size * 0.1, r = base_size * 0.5, b = base_size * 0.1, l = base_size * 0.5)))

p +
  light_mode_i(theme, base_size) +
  ggeasy::easy_remove_gridlines("x") +
  ggplot2::theme(legend.title = element_text(margin = margin(t = base_size * -0.25, r = base_size * 0.5, b = base_size * 0.5, l = 0))) +
  ggplot2::theme(legend.text = element_text(margin = margin(t = base_size * 0.1, r = base_size * 0.5, b = base_size * 0.1, l = base_size * 0.5)))
davidhodge931 commented 10 months ago
library(palmerpenguins)
library(tidyverse)

# library(ggblanket)
devtools::load_all()

light_mode_t <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "top") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * -1.5, r = base_size * 2, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.title = element_text(margin = margin(t = base_size * 0.25, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = element_text(margin = margin(t = base_size * 0.5, r = base_size * 1.25, b = base_size * 0.5, l = base_size * 0.5))) +
    ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * -0.5, b = 0, l = base_size * 1), angle = -90))
}

light_mode_b <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "bottom") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * -0.25, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(r = base_size * 2, b = base_size * 1)) +
    ggplot2::theme(legend.title = element_text(margin = ggplot2::margin(t = base_size * 0.25, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = element_text(margin = ggplot2::margin(t = base_size * 0.5, r = base_size * 1.25, b = base_size * 0.5, l = base_size * 0.5))) +
    ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.33, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * -0.5, b = 0, l = base_size * 1), angle = -90))
}

light_mode_r <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.75, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = base_size * 0.5))) +
    ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1, b = 0, l = base_size * 1), angle = -90))
}

light_mode_rt <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "top") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.75, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = base_size * 0.5))) +
    ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1, b = 0, l = base_size * 1), angle = -90))
}

light_mode_i <- function(theme, base_size, legend_position = c(0.5, 0.5)) {
  theme +
    ggplot2::theme(legend.position = legend_position) +
    # ggplot2::theme(legend.position = "inside") + #new DEV code
    # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = NULL) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * 0.66, r = base_size * 0.33, b = base_size * 0.66, l = base_size * 0.66)) +
    ggplot2::theme(legend.title = element_text(margin = margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = base_size * 1, b = 0, l = base_size * 0.25))) +
    ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_light_mode[4], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(legend.key = element_rect(colour = ggblanket:::pal_light_mode[2], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * -0.5, b = 0, l = base_size * 1), angle = -90))
}

base_size <- 7
base_size <- 30
base_size <- 11

theme <- light_mode(base_size = base_size)

#need to make legend key size smaller
p <- diamonds |>
  slice_head(n = 100) |>
  count(clarity, color, cut) |>
  mutate(clarity = as.numeric(clarity)) |>
  gg_point2(x = clarity, y = n,
          col = color,
          # facet = cut,
          # x_sec_axis = ggplot2::dup_axis(name = "Extreme"),
          # y_sec_axis = ggplot2::dup_axis(name = "Extreme"),
          # x_title = "",
          # col_title = "",
          title = "Blah",
          subtitle = "Blah",
          caption = "Blah")

p +
  light_mode_t(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")

p +
  light_mode_b(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")

p +
  light_mode_r(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")

p +
  light_mode_rt(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")

p +
  labs(caption = "blah") +
  light_mode_i(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")
davidhodge931 commented 10 months ago
library(palmerpenguins)
library(tidyverse)

# library(ggblanket)
devtools::load_all()

light_mode_t <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "top") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * -1.5, r = base_size * 2, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.title = element_text(margin = margin(t = base_size * 0.25, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = element_text(margin = margin(t = base_size * 0.5, r = base_size * 1.25, b = base_size * 0.5, l = base_size * 0.5))) +
    ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * -0.5, b = 0, l = base_size * 1), angle = -90))
}

light_mode_b <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "bottom") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    # ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * -0.25, l = 0)) +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * -0.25, l = 0))
    ggplot2::theme(legend.margin = ggplot2::margin(r = base_size * 2, b = base_size * 0.5)) +
    ggplot2::theme(legend.title = element_text(margin = ggplot2::margin(t = base_size * 0.25, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = element_text(margin = ggplot2::margin(t = base_size * 0.5, r = base_size * 1.25, b = base_size * 0.5, l = base_size * 0.5))) +
    ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.33, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * -0.5, b = 0, l = base_size * 1), angle = -90))
}

light_mode_r <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.75, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = base_size * 0.5))) +
    ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1, b = 0, l = base_size * 1), angle = -90))
}

light_mode_rt <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "top") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.75, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = base_size * 0.5))) +
    ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1, b = 0, l = base_size * 1), angle = -90))
}

light_mode_i <- function(theme, base_size, legend_position = c(0.5, 0.5)) {
  theme +
    ggplot2::theme(legend.position = legend_position) +
    # ggplot2::theme(legend.position = "inside") + #new DEV code
    # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = NULL) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * 0.66, r = base_size * 0.33, b = base_size * 0.66, l = base_size * 0.66)) +
    ggplot2::theme(legend.title = element_text(margin = margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = base_size * 1, b = 0, l = base_size * 0.25))) +
    ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_light_mode[4], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(legend.key = element_rect(colour = ggblanket:::pal_light_mode[2], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * -0.5, b = 0, l = base_size * 1), angle = -90))
}

base_size <- 7
base_size <- 30
base_size <- 11

theme <- light_mode(base_size = base_size)

#need to make legend key size smaller
p <- diamonds |>
  slice_head(n = 100) |>
  count(clarity, color, cut) |>
  mutate(clarity = as.numeric(clarity)) |>
  gg_point2(
    x = clarity,
    y = n,
    col = color,
    # facet = cut,
    # x_sec_axis = ggplot2::dup_axis(name = "Extreme"),
    # y_sec_axis = ggplot2::dup_axis(name = "Extreme"),
    # x_title = "",
    # col_title = "",
    title = "Blah",
    subtitle = "Blah",
    caption = "Blah"
  )

p <- penguins |>
  gg_point(
    x = flipper_length_mm,
    y = body_mass_g,
    col = species,
    x_title = "",
    col_title = "",

    caption = "Source: NIWA"
  )

#TO ADD to EVERYTHING EXCEPT CHECK BOTTOM
p +
  light_mode_t(theme, base_size) +
  ggeasy::easy_remove_gridlines("x") +
  # theme(plot.margin = ggplot2::margin(t = base_size * 1.75, r = base_size * 2, b = base_size * 0.25, l = base_size * 0.75)) +
  # theme(plot.caption = element_text(margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = base_size * 0.5, l = 0))) +
  ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
  ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * 1, l = 0)))

p +
  light_mode_b(theme, base_size) +
  ggeasy::easy_remove_gridlines("x") +
  ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
  ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * 1, l = 0)))

p +
  light_mode_r(theme, base_size) +
  ggeasy::easy_remove_gridlines("x") +
  ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
  ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * 1, l = 0)))

p +
  light_mode_rt(theme, base_size) +
  ggeasy::easy_remove_gridlines("x") +
  ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
  ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * 1, l = 0)))

p +
  light_mode_i(theme, base_size) +
  ggeasy::easy_remove_gridlines("x") +
  ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
  ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * -0.5, r = 0, b = base_size * 1, l = 0)))
davidhodge931 commented 10 months ago
library(palmerpenguins)
library(tidyverse)

# library(ggblanket)
devtools::load_all()

light_mode_t <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "top") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * 0.5, r = 0, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * -1.5, r = base_size * 2, b = base_size * 0.5, l = 0)) +
    ggplot2::theme(legend.title = element_text(margin = margin(t = base_size * 0.25, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = element_text(margin = margin(t = base_size * 0.5, r = base_size * 1.25, b = base_size * 0.5, l = base_size * 0.5))) +
    # ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
    # ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    # ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x = ggplot2::element_text(margin = margin(t = base_size * -0.33, r = 0, b = base_size * 0.75, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * -0.5, b = 0, l = base_size * 1), angle = -90))
}

light_mode_b <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "bottom") +
    ggplot2::theme(legend.direction = "horizontal") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(r = base_size * 2, b = base_size * 0.5)) +
    ggplot2::theme(legend.title = element_text(margin = ggplot2::margin(t = base_size * 0.25, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = element_text(margin = ggplot2::margin(t = base_size * 0.5, r = base_size * 1.25, b = base_size * 0.5, l = base_size * 0.5))) +
    # ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
    # ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.33, r = 0, b = base_size * 1, l = 0))) +
    # ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x = ggplot2::element_text(margin = margin(t = base_size * -0.33, r = 0, b = base_size * 0.75, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * -0.5, b = 0, l = base_size * 1), angle = -90))
}

light_mode_r <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "left") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.75, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = base_size * 0.5))) +
    # ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
    # ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    # ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x = ggplot2::element_text(margin = margin(t = base_size * -0.33, r = 0, b = base_size * 0.75, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1, b = 0, l = base_size * 1), angle = -90))
}

light_mode_rt <- function(theme, base_size) {
  theme +
    ggplot2::theme(legend.position = "right") +
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = "top") +
    ggplot2::theme(legend.box.margin = ggplot2::margin(t = 0, r = 0, b = 0, l = 0)) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.75, l = base_size * 0.75)) +
    ggplot2::theme(legend.title = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = 0, b = 0, l = base_size * 0.5))) +
    # ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.text.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
    # ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    # ggplot2::theme(axis.title.x = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.25, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x = ggplot2::element_text(margin = margin(t = base_size * -0.33, r = 0, b = base_size * 0.75, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * 1, b = 0, l = base_size * 1), angle = -90))
}

light_mode_i <- function(theme, base_size, legend_position = c(0.5, 0.5)) {
  theme +
    ggplot2::theme(legend.position = legend_position) +
    # ggplot2::theme(legend.position = "inside") + #new DEV code
    # ggplot2::theme(legend.position.inside = c(0.125, 0.775)) + #new DEV code, add position_inside argument
    ggplot2::theme(legend.direction = "vertical") +
    ggplot2::theme(legend.justification = NULL) +
    ggplot2::theme(legend.margin = ggplot2::margin(t = base_size * 0.66, r = base_size * 0.33, b = base_size * 0.66, l = base_size * 0.66)) +
    ggplot2::theme(legend.title = element_text(margin = margin(t = 0, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(legend.text = ggplot2::element_text(margin = margin(t = 0, r = base_size * 1, b = 0, l = base_size * 0.25))) +
    ggplot2::theme(legend.background = element_rect(colour = ggblanket:::pal_light_mode[4], fill = ggblanket:::pal_light_mode[2])) +
    ggplot2::theme(legend.key = element_rect(colour = ggblanket:::pal_light_mode[2], fill = ggblanket:::pal_light_mode[2])) +
    # ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 0.5, l = 0))) +
    ggplot2::theme(axis.text.x = element_text(margin = margin(t = base_size * 0.2, r = 0, b = base_size * 1, l = 0))) +
    # ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * 0, r = 0, b = base_size * 1, l = 0))) +
    # ggplot2::theme(axis.title.x = element_text(margin = margin(t = base_size * -0.25, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.title.x = ggplot2::element_text(margin = margin(t = base_size * -0.33, r = 0, b = base_size * 0.75, l = 0))) +
    ggplot2::theme(axis.title.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -1, r = 0, b = base_size * 1, l = 0))) +
    ggplot2::theme(axis.text.x.top = ggplot2::element_text(margin = ggplot2::margin(t = base_size * -0.5, r = 0, b = base_size * 0.2, l = 0))) +
    ggplot2::theme(axis.title.y.right = ggplot2::element_text(margin = ggplot2::margin(t = 0, r = base_size * -0.5, b = 0, l = base_size * 1), angle = -90))
}

base_size <- 7
base_size <- 20
base_size <- 11

theme <- light_mode(base_size = base_size)

#need to make legend key size smaller
p <- diamonds |>
  slice_head(n = 100) |>
  count(clarity, color, cut) |>
  mutate(clarity = as.numeric(clarity)) |>
  gg_col2(
    x = clarity,
    y = n,
    col = color,
    facet = cut,
    # x_sec_axis = ggplot2::dup_axis(name = "Extreme"),
    # y_sec_axis = ggplot2::dup_axis(name = "Extreme"),
    # x_title = "",
    # col_title = "",
    title = "Blah",
    subtitle = "Blah",
    caption = "Source: BBC Corporation Ltd"
  )

p <- penguins |>
  gg_point(
    x = flipper_length_mm,
    y = body_mass_g,
    col = species,
    facet = species,
    facet2 = island,
    x_title = "",
    col_title = "",
    title = "Blah penguins blah blah",
    subtitle = "Blah penguins blah blah",
    caption = "Source: NIWA"
  )

#TO ADD to EVERYTHING EXCEPT CHECK BOTTOM
p +
  light_mode_t(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")

p +
  light_mode_b(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")

p +
  light_mode_r(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")

p +
  light_mode_rt(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")

p +
  light_mode_i(theme, base_size) +
  ggeasy::easy_remove_gridlines("x")
davidhodge931 commented 10 months ago

Fixed :) :) :)