Введение
Вам интересно, какие переписные районы являются самыми богатыми в Западном Мичигане? Если вы живете в графстве Кент, Маскегон или Оттава, то этот пост в блоге для вас. Мы будем использовать 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.
Не финансовый совет. Вам следует обратиться к профессионалу, прежде чем принимать какие-либо финансовые решения.