Картограммы в 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 Республика Бурятия Сибирский федеральный округ

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

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