## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  warning = FALSE,
  comment = "#>",
  fig.width = 6,
  fig.height = 4
)

## ----setup, include=FALSE-----------------------------------------------------
library(xaringanthemer)
style_mono_accent(
  base_color = "#DC322F",
  inverse_background_color = "#002B36",
  inverse_header_color = "#31b09e",
  inverse_text_color = "#FFFFFF",
  title_slide_background_color = "var(--base)",
  text_font_google = google_font("Kelly Slab"),
  header_font_google = google_font("Oleo Script"),
  outfile = NULL
)

## ----ggplot2-demo-1, out.width = "48%", fig.show="hide"-----------------------
library(ggplot2)

g_base <- ggplot(mpg) +
  aes(hwy, cty) +
  geom_point() +
  labs(x = "Highway MPG", y = "City MPG", title = "Fuel Efficiency")

# Basic plot with default theme
g_base

## ----ggplot2-demo-2, fig.show="hide"------------------------------------------
# Fancy slide-matching themed plot
g_base + theme_xaringan()

## ----eval=FALSE---------------------------------------------------------------
# theme_xaringan_restore_defaults()

## ----ggplot2-demo-inverse, fig.show="hide"------------------------------------
# theme_xaringan() on the left, theme_xaringan_inverse() on the right
g_base + theme_xaringan_inverse()

## ----eval=FALSE---------------------------------------------------------------
# theme_xaringan(css_file = "my-slide-style.css")

## ----eval=FALSE---------------------------------------------------------------
# theme_xaringan(
#   text_color = "#3D3E38",
#   background_color = "#FFFFFF",
#   accent_color = "#DC322F",
#   text_font = "Kelly Slab",
#   text_font_use_google = TRUE,
#   title_font = "Oleo Script",
#   title_font_use_google = TRUE
# )

## ----demo-geom-defaults, fig.width = 10---------------------------------------
g_diamonds <- ggplot(diamonds, aes(x = cut)) +
  geom_bar() +
  labs(x = NULL, y = NULL, title = "Diamond Cut Quality") +
  ylim(0, 25000)

g_diamonds + theme_xaringan()

## ----eval=FALSE---------------------------------------------------------------
# theme_xaringan_restore_defaults()

## ----scale-xaringan, fig.width = 9, fig.height = 5, out.width="48%", fig.show="hold", echo = TRUE----
ggplot(diamonds, aes(x = cut)) +
  geom_bar(aes(fill = after_stat(count)), show.legend = FALSE) +
  labs(x = NULL, y = "Count", title = "Diamond Cut Quality") +
  theme_xaringan() +
  scale_xaringan_fill_continuous()

ggplot(mpg, aes(x = hwy, y = cty)) +
  geom_count(aes(color = after_stat(n)), show.legend = FALSE) +
  labs(x = "Highway MPG", y = "City MPG", title = "Fuel Efficiency") +
  theme_xaringan_inverse() +
  scale_xaringan_color_continuous(breaks = seq(3, 12, 2), inverse = TRUE, begin = 1, end = 0)

## ----text demo, fig.width = 10------------------------------------------------
g_diamonds_with_text <-
  g_diamonds +
  geom_text(aes(y = after_stat(count), label = format(after_stat(count), big.mark = ",")),
    vjust = -0.30, size = 8, stat = "count") +
  labs(x = "Cut", y = "Count")

g_diamonds_with_text + theme_xaringan()

## ----text-demo-2, fig.width = 10----------------------------------------------
g_diamonds_with_text +
  theme_xaringan(
    text_font = google_font("Ranga"),
    title_font = google_font("Holtwood One SC")
  )

## ----sysfonts-custom-font, fig.width = 10-------------------------------------
# Path to the local custom font file
font_temp <- system.file(
  "fonts/GlacialIndifferenceRegular.ttf", package = "xaringanthemer"
)

# Register the font with sysfonts/showtext
sysfonts::font_add(family = "GlacialIndifferenceRegular", regular = font_temp)

# Now it's available for use!
g_diamonds_with_text +
  theme_xaringan(
    text_font = "GlacialIndifferenceRegular",
    title_font = "GlacialIndifferenceRegular"
  )

## ----eval=FALSE---------------------------------------------------------------
# ## On Windows
# # x11(width = 16 * 2/3, height = 9 * 2/3)
# 
# ## On MacOS
# quartz(width = 16 * 2/3, height = 9 * 2/3)
# ## run plot code to preview in separate window
# dev.off() # call when done to close the device

