unhcrthemes unhcrthemes package hex sticker

Project Status: Active – The project has reached a stable, usable state and is being actively developed. R-CMD-check CRAN status

Simplify the creation of your data visualizations with the {unhcrthemes} R package. It is designed to align your plots with UNHCR’s data visualization recommendations. This package offers a comprehensive {ggplot2} theme, including built-in customizations and thoughtfully crafted color palettes.

Features

Installation

Get started by installing the {unhcrthemes} package from CRAN with:

install.packages("unhcrthemes")

Or retrieve the development version from Github using the {pak} package:

# If pak is not yet installed, uncomment the following line:
# install.packages("pak")

pak::pkg_install("unhcr-dataviz/unhcrthemes")

Usage

# Load required packages
library(ggplot2)
library(unhcrthemes)

Base {ggplot2} theme

# Apply the theme_unhcr() to your plot
ggplot(
  mtcars,
  aes(x = hp, y = mpg)
) +
  geom_point() +
  labs(
    title = "Simple scatterplot with ggplot",
    subtitle = "This plot shows the default style of theme_unhcr()",
    x = "Horsepower (hp)",
    y = "Fuel efficiency (mpg)",
    caption = "Source: mtcars"
  ) +
  theme_unhcr()

Fonts

One of the two officially recommended fonts outlined in the UNHCR Data Visualization Guidelines is Lato. To ensure optimal functionality of the {unhcrthemes} package, please make sure that the Lato font is installed on your device prior to usage.

For R PDF (pdf) and PostScript (postcript) devices, there is a function import_lato that can be used to import the Lato font into these two devices. We recommend the use of cairo_pdf or cairo_ps devices, which work when you have Lato installed. They are available on all platforms and have better support custom fonts.

Color palettes

Choose from a variety of carefully curated color palettes that harmonize with UNHCR’s visual identity.

# Display all unhcr color palette
display_unhcr_all()

# Or select a specific one and limit the number of colors
display_unhcr_pal(n = 3, "pal_blue")

Scales (color/fill)

# Add color scale to your plot
ggplot(
  mtcars,
  aes(x = hp, y = mpg, color = as.factor(cyl))
) +
  geom_point(alpha = .8) +
  labs(
    title = "Simple scatterplot with ggplot",
    subtitle = "This plot shows the default style of theme_unhcr()",
    x = "Horsepower (hp)",
    y = "Fuel efficiency (mpg)",
    color = "Number of cylinder",
    caption = "Source: mtcars"
  ) +
  scale_color_unhcr_d() +
  theme_unhcr(legend_title = TRUE)

Geoms (text/label)

# Default Lato font also apply for geom_text and label
dplyr::count(mpg, class) |>
  dplyr::arrange(n) |>
  dplyr::mutate(class = factor(class, levels = class)) |>
  ggplot(aes(n, class)) +
  geom_col(fill = unhcr_pal(n = 1, "pal_blue")) +
  geom_text(aes(label = n), hjust = 0, nudge_x = 1) +
  labs(
    title = "Simple bar chart with labels using ggplot",
    subtitle = "This plot shows the default style of theme_unhcr()",
    caption = "Source: mtcars"
  ) +
  scale_x_continuous(expand = expansion(c(0, 0.1))) +
  theme_unhcr(grid = FALSE, axis = "y", axis_title = FALSE, axis_text = "y")

Explore more examples of {unhcrthemes} in action on the package vignette or UNHCR Data Visualization Platform.

Additional UNHCR Tools

Acknowledgements

We extend our gratitude to the creators of the {hrbrthemes}, {rcartocolor} and {cowplot} packages that influenced the development of {unhcrthemes}.

Contribution and Code of Conduct

Contributions to {unhcrthemes} are highly valued. To ensure a welcoming and inclusive community, we follow our Contributor Code of Conduct. If you have suggestions, uncover bugs, or envision new features, kindly submit an issue on GitHub. To contribute code, don’t hesitate to fork the repository and create a pull request.

License

This package is distributed under the MIT License.