isabellabenabaye / ib

📦 Personal R package, currently containing functions for ggplot2 and my personal ggplot2 theme

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ib - Isabella Benabaye’s personal R package

ggplot2 functions

theme_ib: A simple ggplot2 theme in my personal style. By default (plots_pane = FALSE), the theme adjusts the text sizes for printing images with width 10+ inches & height 8+ inches. plots_pane = TRUE is meant to be used when viewing plots in the plots pane and text sizes are not adjusted. There is also an option (md = TRUE) to use markdown theme elements from ggtext instead of element_text(). The fonts used are IBM Plex Sans & IBM Plex Mono, to load them you need extrafont and to run extrafont::loadfonts(device = "win", quiet = TRUE) if you’re using Windows.

update_geom_fonts_ib: Update font defaults for text geoms to match theme_ib

scale_x_c_ib: Sets default values for the expand argument of scale_x_continuous that adds 0.5 units of space on both sides of the plot

scale_x_d_ib: Sets default values for the expand argument of scale_x_discrete that adds 0.5 units of space on both sides of the plot

scale_y_c_ib: Sets default values for the expand argument of scale_y_continuous such that there is no space below the lowest value and the top end of the plot is extended by 5% (eg. for use with bar plots)

scale_y_d_ib: Sets default values for the expand argument of scale_y_discrete such that there is no space below the lowest value and the top end of the plot is extended by 5% (eg. for use with bar plots)

Examples

The following plots were taken from Allison Horst’s palmerpenguins README.

Using theme_ib to print a scatter plot with width = 12 inches & height = 8 inches and the md = TRUE argument to use ggtext::element_markdown() instead of element_text() for text elements, in this case the subtitle:

library(ggplot2)
library(palmerpenguins)
library(ib)
extrafont::loadfonts(device = "win", quiet = TRUE) ## to load the font

ggplot(data = penguins,
       aes(x = flipper_length_mm,
           y = bill_length_mm)) +
  geom_point(aes(color = species),
             size = 3,
             alpha = 0.8, show.legend = FALSE) +
  geom_smooth(method = "lm", se = FALSE, aes(color = species), show.legend = FALSE) +
  scale_color_manual(values = c("darkorange","purple","cyan4")) +
  labs(title = "Flipper and bill length",
       subtitle = "Dimensions for <span style = 'color:#FDA131;'>Adelie</span>, <span style = 'color:#B14AF1;'>Chinstrap</span> and <span style = 'color:#31A0A0;'>Gentoo Penguins</span> at Palmer Station LTER",
  x = "Flipper length (mm)",
y = "Bill length (mm)",
color = "Penguin species") +
  theme_ib(md = TRUE) +
  ggsave("flipper_bill.png",device = "png", type = "cairo", width = 12, height = 8, dpi = 300)

ggplot(data = penguins, aes(x = flipper_length_mm)) +
  geom_histogram(aes(fill = species),
                 alpha = 0.5,
                 position = "identity") +
  scale_fill_manual(values = c("darkorange","purple","cyan4")) +
  labs(title = "Penguin flipper lengths",
       x = "Flipper length (mm)",
       y = "Frequency",
       fill = "Penguin species") +
  theme_ib(plots_pane = TRUE) +
  scale_x_c_ib() +
  scale_y_c_ib()

About

📦 Personal R package, currently containing functions for ggplot2 and my personal ggplot2 theme

License:Other


Languages

Language:R 100.0%