Введение

Вам интересно, какие переписные районы являются самыми богатыми в Западном Мичигане? Если вы живете в графстве Кент, Маскегон или Оттава, то этот пост в блоге для вас. Мы будем использовать R и несколько библиотек, таких как tidycensus, ggiraph и tidyverse, чтобы создать интерактивную карту, на которой показаны самые богатые переписные районы в выбранных округах. Итак, давайте погрузимся!

Требования

  • РСтудио
  • R
  • Базовое моделирование данных и понимание R

Отображение

Во-первых, давайте загрузим необходимые библиотеки и установим параметры для tidycensus для использования кеша, что ускорит процесс, если мы снова запустим код в будущем. Затем воспользуемся функцией get_acs из библиотеки tidycensus для получения нужных нам данных. Мы отфильтруем данные, чтобы показать только участки, в которых расчетный доход домохозяйства превышает 80 000 долларов США.

library(tidycensus)
library(ggiraph)
library(tidyverse)
library(patchwork)
library(scales)
library(dplyr)
options(tigris_use_cache = TRUE)

vt_income <- get_acs(
  geography = "tract",
  variables = "B19013_001",
  state = "MI",
  county = c("Kent", "Ottawa", "Muskegon"),
  year = 2020,
  geometry = TRUE
) %>%
  filter(estimate > 80000)

Теперь давайте создадим первый график, который будет картой выбранных округов в Мичигане с выделенными самыми богатыми переписными районами. Мы будем использовать ggplot2 для создания этой карты и функцию geom_sf_interactive, чтобы сделать ее интерактивной. Мы также будем использовать функцию scale_fill_distiller для установки цветовой палитры для карты и функцию theme_void для удаления любых ненужных элементов.

vt_map <- ggplot(vt_income, aes(fill = estimate)) + 
  geom_sf_interactive(aes(data_id = GEOID)) + 
  scale_fill_distiller(palette = "Greens",
                       direction = 1, 
                       guide = "none") + 
  theme_void()

Далее мы создадим второй график, который будет представлять собой столбчатую диаграмму, показывающую распределение доходов домохозяйств по районам в выбранных округах. Мы снова будем использовать ggplot2, а также функции geom_errorbar и geom_point_interactive, чтобы показать предел погрешности. Мы также будем использовать функцию scale_fill_distiller, чтобы установить цветовую палитру для графика, и функции scale_x_continuous и scale_y_continuous, чтобы установить метки осей. Наконец, мы будем использовать функции theme_minimal и theme, чтобы установить общий вид, а также любые корректировки текста по оси Y.

vt_plot <- ggplot(vt_income, aes(x = estimate, y = reorder(NAME, estimate), 
                                 fill = estimate)) +
  geom_errorbar(aes(xmin = estimate - moe, xmax = estimate + moe)) +
  geom_point_interactive(color = "black", size = 4, shape = 21,
                         aes(data_id = GEOID)) +
  scale_fill_distiller(palette = "Greens", direction = 1,
                       labels = label_dollar()) + 
  scale_x_continuous(labels = label_dollar()) + 
  labs(title = "Household income by tract in Michigan",
       subtitle = "2016-2020 American Community Survey",
       y = "",
       x = "ACS estimate (bars represent margin of error)",
       fill = "ACS estimate") + 
  theme_minimal(base_size = 17) +
  theme(axis.text.y = element_text(size = 6, margin(0,0,10,0)))

Большой! Теперь, когда у нас есть карта и график, давайте объединим их с помощью пакета patchwork.

girafe(ggobj = vt_map + vt_plot, width_svg = 16, height_svg = 8) %>%
  girafe_options(opts_hover(css = "fill:cyan;"))

Этот код даст нам интерактивный график, на котором мы можем навести указатель мыши на каждый участок переписи, чтобы увидеть предполагаемый доход домохозяйства. Функция girafe преобразует наш объект ggplot в интерактивный график, а girafe_options позволяет нам настраивать параметры наведения. В этом случае мы меняем цвет заливки на голубой при наведении курсора на переписной участок.

И вуаля! У нас есть красивая и интерактивная визуализация самых богатых переписных участков в этих округах Мичигана.

Выход:

Примечания

Если вы хотите поддержать меня, подпишитесь на Medium и LinkedIn.

Не финансовый совет. Вам следует обратиться к профессионалу, прежде чем принимать какие-либо финансовые решения.