The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Branded Themes

library(brand.yml)

Overview

The brand.yml package includes helper functions for theming plotting and table packages using your brand colors.

The theme_brand_* functions can be used in two ways:

  1. With a brand.yml file: The functions automatically detect and use a _brand.yml file in your current project. You can also explicitly pass a path to a brand.yml file or a brand object.

  2. With explicit colors: You can directly provide colors to override the default brand colors, or use brand = FALSE to ignore any project _brand.yml files.

Creating a brand

This vignette demonstrates using the theme_brand_* functions with a simple brand object created with as_brand_yml(), but you can imagine this YAML being stored in a _brand.yml file in your project directory.

First, we’ll create a brand object using a subset of the colors from the brand.yml project’s own _brand.yml file:

brand <- as_brand_yml(
  '
color:
  palette:
    black: "#1A1A1A"
    white: "#F9F9F9"
    orange: "#FF6F20"
    purple: "#A500B5"
    pink: "#FF3D7F"
    blue: "#007BFF"
    green: "#28A745"
  foreground: black
  background: white
  primary: orange
  danger: pink
'
)

If you have a _brand.yml file in your project directory, you can read it in with read_brand_yml(), or just let the theme_brand_* functions find it automatically.

ggplot2

The theme_brand_ggplot2() function creates a ggplot2 theme using brand colors. You can also override individual colors by passing them directly:

library(ggplot2)

ggplot(mtcars, aes(mpg, wt)) +
  geom_point(size = 2, aes(color = factor(cyl))) +
  geom_smooth(method = "lm", formula = y ~ x) +
  scale_colour_manual(
    values = c(
      brand_color_pluck(brand, "blue"),
      brand_color_pluck(brand, "purple"),
      brand_color_pluck(brand, "green")
    )
  ) +
  labs(
    title = "Motor Trend Car Road Tests",
    subtitle = "1974 Motor Trend US magazine",
    caption = "Data from the 1974 Motor Trend US magazine",
    x = "Miles per Gallon",
    y = "Weight (1,000 lbs)",
    colour = "Cylinders"
  ) +
  theme_brand_ggplot2(brand)

thematic

The theme_brand_thematic() function sets global theming for base R graphics and ggplot2. Use thematic_with_theme() to apply the theme temporarily:

library(ggplot2)
library(patchwork)
library(thematic)

# Use thematic_with_theme to apply the theme temporarily
thematic_with_theme(theme_brand_thematic(brand, foreground = "purple"), {
  # Generate three scatterplots
  plot1 <- ggplot(mtcars, aes(mpg, wt)) +
    geom_point()

  plot2 <- ggplot(mtcars, aes(mpg, disp)) +
    geom_point()

  plot3 <- ggplot(mtcars, aes(mpg, hp)) +
    geom_point()

  # Display all three scatterplots in same graphic
  plot1 + plot2 + plot3
})

ggiraph

The theme_brand_ggplot2() function works with ggiraph interactive plots. We can override specific colors while using the brand defaults:

library(ggplot2)
library(ggiraph)

cars <- ggplot(mtcars, aes(mpg, wt)) +
  geom_point_interactive(aes(
    colour = factor(cyl),
    tooltip = rownames(mtcars)
  )) +
  scale_colour_manual(
    values = c(
      brand_color_pluck(brand, "orange"),
      brand_color_pluck(brand, "purple"),
      brand_color_pluck(brand, "green")
    )
  ) +
  theme_brand_ggplot2(brand)

girafe(ggobj = cars)

plotly

The theme_brand_plotly() function applies brand colors to plotly plots. The function also accepts an accent parameter for highlighting colors:

library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
p <- plot_ly(
  iris,
  x = ~Species,
  y = ~Sepal.Width,
  type = "violin",
  box = list(visible = TRUE),
  meanline = list(visible = TRUE),
  points = "all"
)

theme_brand_plotly(p, brand, accent = "pink")

gt

The theme_brand_gt() function applies brand colors to gt tables. Here we use the brand’s palette colors directly by name:

library(gt)

islands_tbl <- dplyr::tibble(name = names(islands), size = islands)
islands_tbl <- dplyr::slice_max(islands_tbl, size, n = 10)

theme_brand_gt(
  gt(islands_tbl),
  brand,
  background = "green",
  foreground = "white"
)
name size
Asia 16988
Africa 11506
North America 9390
South America 6795
Antarctica 5500
Europe 3745
Australia 2968
Greenland 840
New Guinea 306
Borneo 280

flextable

The theme_brand_flextable() function applies brand colors to a flextable table. It uses the foreground and background colors from the brand. Here we’ll use the default brand we created above:

library(flextable)
## 
## Attaching package: 'flextable'
## The following objects are masked from 'package:plotly':
## 
##     highlight, style
ft <- flextable(airquality[sample.int(10), ])
ft <- add_header_row(ft, colwidths = c(4, 2), values = c("Air quality", "Time"))
ft <- theme_vanilla(ft)
ft <- add_footer_lines(
  ft,
  "Daily air quality measurements in New York, May to September 1973."
)
ft <- set_caption(ft, caption = "New York Air Quality Measurements")

theme_brand_flextable(ft, brand)
New York Air Quality Measurements

Air quality

Time

Ozone

Solar.R

Wind

Temp

Month

Day

28

14.9

66

5

6

41

190

7.4

67

5

1

14.3

56

5

5

8

19

20.1

61

5

9

19

99

13.8

59

5

8

36

118

8.0

72

5

2

18

313

11.5

62

5

4

12

149

12.6

74

5

3

23

299

8.6

65

5

7

194

8.6

69

5

10

Daily air quality measurements in New York, May to September 1973.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.