Сетевой график и карта США в R
Я создал сетевой график из данных о потоках между штатами США. Для каждой вершины у меня есть lat/long состояния.
Я надеюсь воссоздать сетевой вид графика, на котором показаны ребра, за исключением того, что я установил местоположение каждой вершины в качестве их географического положения и на карте на карте границы состояния.
Я использую igraph для создания своей сети. В ggplot2 было несколько классных примеров сопоставления, поэтому мне интересно, если это вариант. Я думаю, что видел подобные варианты с использованием Pajek, но я надеюсь остаться в R.
Любые идеи / идеи будут оценены.
- барсук
1 ответ
У вас есть несколько пакетов, связанных с картами. Самый простой maps
, который дает вам карту штатов. Вы можете построить вершины, используя координаты.
map("state")
points(longitute,latitude)
Этими графиками можно манипулировать и добавлять в базовые инструменты, помня, что ось x - это долгота, а ось y - это широта. края могут быть нанесены с помощью segments()
функция.
В ggplot2 просто используйте map_data()
функция, которая дает вам данные формы карты, и geom_polygon()
добавить его в график в любой форме, которую вы хотите. Опять же, вы можете добавить вершины и ребра, используя координаты с соответствующей функцией ggplot2 geom_point()
а также geom_segment()
, Код, на который вы ссылаетесь, показывает вам, как, или иначе посмотрите на это для примера.
Кроме того, вы можете посмотреть на пакеты maptools
, который предлагает больше функциональности и, mapproj
, что позволяет разные проекции одной и той же карты. Вы также можете использовать эти пакеты для расчета географических расстояний в системе координат.
mapdata
содержит больше баз данных и охватывает в основном весь мир. Вы можете работать с координатами довольно приятно.