Картограммы в R. Часть 1 | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Алгоритмы и структуры данных Team Lead Архитектура и шаблоны проектирования Разработчик IoT C# Developer. Professional PostgreSQL Разработчик на Spring Framework
-5%
Flutter Mobile Developer NoSQL iOS Developer. Basic
-10%
C++ Developer. Basic C++ Developer. Professional Android Developer. Professional Microservice Architecture Unity Game Developer. Professional Базы данных Node.js Developer React.js Developer Специализация Java-разработчик
-25%
Web-разработчик на Python Framework Laravel Cloud Solution Architecture Vue.js разработчик Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK Administrator Linux. Professional Дизайн сетей ЦОД Разработчик IoT PostgreSQL Экспресс-курс "Версионирование и командная работа с помощью Git"
-30%
Microservice Architecture Highload Architect Специализация Administrator Linux
-25%
Network engineer Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool" Network engineer. Basic
Корпоративные курсы
Безопасность веб-приложений IT-Recruiter Дизайн сетей ЦОД Компьютерное зрение Разработчик IoT Вебинар CERTIPORT Machine Learning. Professional
-6%
NoSQL Пентест. Практика тестирования на проникновение Java QA Engineer. Базовый курс Руководитель поддержки пользователей в IT
-8%
SRE практики и инструменты Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Infrastructure as a code Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» BPMN: Моделирование бизнес-процессов Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Картограммы в R. Часть 1

R_Deep_9.07_Site-5020-2fe52c.png

Визуализация данных в R — крайне обширная и разнообразная тема. Существует большое количество как и самих форм презентации информации (т. е. самих видов графиков), так и пакетов, расширяющих возможности языка под отдельные задачи. В частности, R способен визуализировать пространственные данные посредством картограмм. В данном посте и пойдёт речь об этом не самом распространённом виде диаграмм.

Небольшая ремарка: подобные графики корректнее называть картограммами, а не картами, поскольку карты — это чертёж земной (в нашем случае) поверхности, а картограмма — способ изобразить статистические данные в пространстве. Но для краткости мы всё равно будем называть их «картами».

Пакеты для карт

С картами в R справится как и обычный plot(), так и средства пакетов ggplot и ggmap.

#пакеты для создания карт:
library("ggplot2")
library("maptools")
library("tmap")
library("mapproj")

#пакеты для обработки данных и прочего
library("rgdal")
library("rgeos")
library("tidyverse")
library("stringr")
library("RColorBrewer")

Откуда берутся карты?

Говоря простым языком, карту можно представить в виде точек, линий и многоугольников (полигонов), в зависимости от того, что именно планируется изобразить. У нас речь пойдёт про регионы, поэтому будем рисовать полигоны.

Проще всего скачать уже готовую карту и сразу начать с ней работать. В R для этой цели можно использовать файлы с расширениями .shp (shape-файлы) и geoJSON.

В качестве примера можно взять какой-нибудь свободный набор данных, например, здесь:

map_shp <- readOGR(dsn = "~/Regions/Regions.shp")
## OGR data source with driver: ESRI Shapefile 
## Source: "/Users/akondrashov/Regions/Regions.shp", layer: "Regions"
## with 83 features
## It has 2 fields

Получим объект с 2 полями (название региона — субъекта и какого округу он принадлежит) и 83 записями (83 региона в России). Объект shape-файла несколько отличается от привычных в R объектов: обращаться к его полям всё ещё можно через $, однако самое важное находится в слотах — к ним можно обратиться через @.

Структуру в этой заметке мы приводить не будем, из важного заметим, что помимо названий регионов, объект содержит координаты полигонов (границ регионов), а также используемый метод проекции.

kable(head(map_shp@data, 10), caption = "Первые 10 строчек")

Первые 10 строчек

NAME ADM3_NAME
0 Курганская область Уральский федеральный округ
1 Архангельская область Северо-Западный федеральный округ
2 Ненецкий автономный округ Северо-Западный федеральный округ
3 Новгородская область Северо-Западный федеральный округ
4 Курская область Центральный федеральный округ
5 Липецкая область Центральный федеральный округ
6 Магаданская область Дальневосточный федеральный округ
7 Камчатский край Дальневосточный федеральный округ
8 Забайкальский край Сибирский федеральный округ
9 Республика Бурятия Сибирский федеральный округ

Что же, теперь займёмся самым интересным — «рисовашками». Но об этом поговорим в следующей части!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться