ggplot2 Themes

Author
Affiliation

Asst. Prof. Calvin J. Chiou

National Chengchi University (NCCU)

Introduction

In this document, we will explore various themes and styles available in ggplot2.

library(ggplot2)
library(ggthemes)

# Basic plot
p <- ggplot(mpg, aes(x=displ, y=hwy, color=class)) +
  geom_point() +
  labs(title="Default Theme")

p

Below are examples of applying different basic themes to your plot:

Theme Gray

p + theme_gray() +
  labs(title="Theme Gray")

Theme Dark-on-light

p + theme_bw() +
  labs(title="Theme BW")

Theme Linedraw

p + theme_linedraw() +
  labs(title="Theme Linedraw")

Theme Light

p + theme_light() +
  labs(title="Theme Light")

Theme Dark

p + theme_dark() +
  labs(title="Theme Dark")

Theme Minimal

p + theme_minimal() +
  labs(title="Theme Minimal")

Theme Classic

p + theme_classic() +
  labs(title="Theme Classic")

Theme Void

p + theme_void() +
  labs(title="Theme Void")

Theme Test

p + theme_test() +
  labs(title="Theme Test")


Themes in ggthemes

Below are examples of applying additional themes using package ggthemes to your plot:

Theme Economist

p + theme_economist() +
  labs(title="Theme Economist") +
  scale_color_economist()

Theme Economist - White

p + theme_economist_white() +
  labs(title="Theme Economist - White") +
  scale_color_economist()

Theme Excel

p + theme_excel() +
  labs(title="Theme Excel") +
  scale_color_excel()

Theme Excel - New

p + theme_excel_new() +
  labs(title="Theme Excel - New") +
  scale_color_excel_new()

Theme LibreOffice Calc

p + theme_calc() +
  labs(title="Theme Calc") +
  scale_color_calc() +
  scale_shape_calc()

Theme Highcharts

p + theme_hc() +
  labs(title="Theme Highcharts") + 
  scale_color_hc()

Theme Google Docs

p + theme_gdocs() +
  labs(title="Theme Google Docs") +
  scale_color_gdocs()

Theme Clean

p + theme_clean() +
  labs(title="Theme Clean") +
  scale_color_canva()

Theme 538

p + theme_fivethirtyeight() +
  labs(title="Theme 538")

Theme igray

p + theme_igray() +
  labs(title="Theme igray")

Theme few

p + theme_few() +
  labs(title="Theme few") +
  scale_color_few()

Theme Solarized

# light
p + theme_solarized() +
  labs(title="Theme Solarized") +
  scale_color_solarized()

# light2
p + theme_solarized_2() +
  labs(title="Theme Solarized2") +
  scale_color_solarized()

# dark
p + theme_solarized(light = FALSE) +
  labs(title="Theme Solarized Dark") +
  scale_color_solarized()

Theme tufte

p + theme_tufte() +
  labs(title="Theme tufte")

Theme Stata

p + theme_stata() +
  labs(title="Theme Stata") + 
  scale_color_stata() + 
  scale_shape_stata()

Theme Wall Street Journal (WSJ)

p + theme_wsj() +
  labs(title="Theme Wall Street Journal")

Theme Pander

p + theme_pander() +
  labs(title="Theme Pander") +
  scale_color_pander()

Theme Tidyquant

library(tidyquant)
# Tidyquant - basic
p + theme_tq() +
  labs(title="Theme Tidyquant") +
  scale_color_tq()

# dark
p + theme_tq_dark() +
  labs(title="Theme Tidyquant Dark") +
  scale_color_tq()

# green
p + theme_tq_green() +
  labs(title="Theme Tidyquant Green") +
  scale_color_tq()


Custom Theme

custom_theme <- theme(
  plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
  axis.title = element_text(size = 12, face = "bold"),
  axis.text = element_text(size = 10),
  panel.background = element_rect(fill = "white"),
  panel.grid.major = element_line(color = "grey", linewidth = 0.5),
  panel.grid.minor = element_line(color = "lightgrey", linewidth = 0.25)
)

p + custom_theme + labs(title = "Custom Theme")

Back to top