Dark mode for ggplot2 themes
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
R Changes for CRAN Jan 9, 2019
man Update documentation Jan 9, 2019
tests Rewrite internals Jan 3, 2019
.Rbuildignore Add documentation and README Sep 19, 2018
.gitignore Initial commit Sep 15, 2018
.travis.yml Create .travis.yml Sep 19, 2018
DESCRIPTION Changes for CRAN Jan 9, 2019
LICENSE Initial commit Sep 15, 2018
NAMESPACE Updated documentation and examples Jan 3, 2019
README.Rmd Update README with CRAN install Jan 16, 2019
README.md Update README with CRAN install Jan 16, 2019
appveyor.yml Create appveyor.yml Sep 19, 2018
ggdark.Rproj Rename package and some functions Sep 18, 2018

README.md

ggdark

Travis-CI Build Status AppVeyor Build Status

Installation

You can install ggdark from CRAN with:

install.packages("ggdark")

If you want the development version, you can install ggdark from GitHub with:

# install.packages("devtools")
devtools::install_github("nsgrantham/ggdark")

Dark mode for ggplot2

library(ggplot2)

p <- ggplot(diamonds) + 
  geom_point(aes(carat, price, color = cut)) + 
  scale_y_continuous(label = scales::dollar) +
  guides(color = guide_legend(reverse = TRUE)) +
  labs(title = "Prices of 50,000 round cut diamonds by carat and cut",
       x = "Weight (carats)",
       y = "Price in US dollars",
       color = "Quality of the cut")

p + theme_gray()  # ggplot default

library(ggdark)

p + dark_theme_gray()  # the dark version
#> Inverted geom defaults of fill and color/colour.
#> To change them back, use invert_geom_defaults().

# modify the theme to your liking, as you would in ggplot2
p + dark_theme_gray(base_family = "Fira Sans Condensed Light", base_size = 14) + 
  theme(plot.title = element_text(family = "Fira Sans Condensed"),
        plot.background = element_rect(fill = "grey10"),
        panel.background = element_blank(),
        panel.grid.major = element_line(color = "grey30", size = 0.2),
        panel.grid.minor = element_line(color = "grey30", size = 0.2),
        legend.background = element_blank(),
        axis.ticks = element_blank(),
        legend.key = element_blank(),
        legend.position = c(0.815, 0.27))

Dark themes

ggdark provides dark versions of all themes available in ggplot2:

mtcars2 <- within(mtcars, {
  vs <- factor(vs, labels = c("V-shaped", "Straight"))
  am <- factor(am, labels = c("Automatic", "Manual"))
  cyl  <- factor(cyl)
  gear <- factor(gear)
})

p <- ggplot(mtcars2) +
  geom_point(aes(wt, mpg, color = gear)) +
  facet_grid(vs ~ am) +
  labs(title = "Fuel economy declines as weight increases",
       subtitle = "(1973-74)",
       caption = "Data from the 1974 Motor Trend US magazine.",
       x = "Weight (1000 lbs)",
       y = "Fuel economy (mpg)",
       color = "Gears")
p + dark_theme_gray()

p + dark_theme_bw()

p + dark_theme_linedraw()

p + dark_theme_light()  # quite dark

p + dark_theme_dark()  # quite light

p + dark_theme_minimal()

p + dark_theme_classic()

p + dark_theme_void()

Make your own dark theme

Usedark_mode on any theme to create its dark version.

invert_geom_defaults()  # change geom defaults back to black

library(gapminder)

p <- ggplot(subset(gapminder, continent != "Oceania")) +
  geom_line(aes(year, lifeExp, group = country, color = country), lwd = 1, show.legend = FALSE) + 
  facet_wrap(~ continent) +
  scale_color_manual(values = country_colors) +
  labs(title = "Life expectancy has increased worldwide")
# install.packages("ggthemes")
library(ggthemes)

p + theme_fivethirtyeight()

p + dark_mode(theme_fivethirtyeight())
#> Inverted geom defaults of fill and color/colour.
#> To change them back, use invert_geom_defaults().

invert_geom_defaults()  # leave the geom defaults how you found them!

Happy plotting! 🖤