Skip to content
R for the Rest of Us Logo

R in 3 Months (Spring 2025)

Week 11 Live Session (Spring 2025)

Transcript

Click on the transcript to go to that point in the video. Please note that transcripts are auto generated and may contain minor inaccuracies.

View code shown in video

Theme

library(tidyverse)
library(ggtext)
library(palmerpenguins)


theme_dk <- function(show_gridlines = FALSE, show_axis_text = TRUE) {
  basic_theme <-
    theme_minimal() +
    theme(
      axis.title = element_blank(),
      plot.title = element_markdown(),
      plot.title.position = "plot",
      panel.grid = element_blank(),
      axis.text = element_text(color = "grey60", size = 10)
    )

  if (show_gridlines == TRUE) {
    basic_theme <-
      basic_theme +
      theme(
        panel.grid.major = element_line(color = "grey80")
      )
  }
  
  if (show_axis_text == FALSE) {
    basic_theme <-
      basic_theme +
      theme(
        axis.text = element_blank()
      )
  }

  basic_theme
}

theme_dk_v2 <- function(plot_type) {
  basic_theme <-
    theme_minimal() +
    theme(
      axis.title = element_blank(),
      plot.title = element_markdown(),
      plot.title.position = "plot",
      panel.grid = element_blank(),
      axis.text = element_text(color = "grey60", size = 10)
    )
  
  if (plot_type == "horizontal bar chart") {
    basic_theme <-
      basic_theme +
      theme(
        axis.text = element_blank()
      )
  }
  
  if (plot_type == "map") {
    basic_theme <-
      basic_theme +
      theme(
        axis.text = element_blank()
      )
  }

  
  basic_theme
}

penguin_bar_chart <-
  penguins |>
  group_by(island) |>
  summarize(mean_bill_length = mean(bill_length_mm, na.rm = TRUE)) |>
  ggplot(
    aes(
      x = island,
      y = mean_bill_length,
      label = island,
      fill = island
    )
  ) +
  geom_col() +
  labs(title = "Biscoe penguins have the longest bills on average")

penguin_bar_chart

penguin_bar_chart +
  theme_dk(show_gridlines = TRUE)

Mapping

library(tidyverse)
library(janitor)
library(sf)

# Portland ----------------------------------------------------------------

portland_boundaries <-
  read_sf("data-raw/City_Boundaries.geojson") |>
  clean_names() |>
  filter(cityname == "Portland")

portland_boundaries |> 
  ggplot() +
  geom_sf()

traffic_signals <-
  read_sf("data-raw/Traffic_Signals.geojson") |>
  clean_names()

traffic_signals |> 
  ggplot() +
  geom_sf()

snow_and_ice_routes <-
  read_sf("data-raw/Snow_and_Ice_Routes.geojson") |>
  clean_names()

snow_and_ice_routes |> 
  ggplot() +
  geom_sf()

ggplot() +
  geom_sf(data = portland_boundaries) +
  geom_sf(data = traffic_signals,
          aes(color = software_type),
          alpha = 0.5,
          size = 1) +
  geom_sf(data = snow_and_ice_routes) +
  theme_dk(show_axis_text = FALSE)

# Tigris ------------------------------------------------------------------

library(tigris)

us_states <- states()

us_states |> 
  shift_geometry() |> 
  ggplot() +
  geom_sf()

kentucky_counties <- counties(state = "Kentucky")

kentucky_counties |> 
  ggplot() +
  geom_sf()

# Median Income -----------------------------------------------------------

library(tidycensus)
library(scales)

median_income <-
  get_acs(
    state = "Washington",
    geography = "county",
    variables = "B19013_001",
    geometry = TRUE
  )

median_income |>
  ggplot(aes(fill = estimate)) +
  geom_sf()


# International Data ------------------------------------------------------

library(rnaturalearth)

iceland <-
  ne_countries(
    country = "Iceland",
    scale = "large",
    returnclass = "sf"
  ) |>
  select(sovereignt)

ggplot(data = iceland) +
  geom_sf()


# Interactive -------------------------------------------------------------

library(ggiraph)

median_income_interactive_plot <-
  median_income |>
  ggplot(aes(
    fill = estimate,
    tooltip = estimate
  )) +
  geom_sf_interactive()

girafe(ggobj = median_income_interactive_plot)

Have any questions? Put them below and we will help you out!

You need to be signed-in to comment on this post. Login.

Course Content

127 Lessons