Сетевой график и карта США в R

Я создал сетевой график из данных о потоках между штатами США. Для каждой вершины у меня есть lat/long состояния.

Я надеюсь воссоздать сетевой вид графика, на котором показаны ребра, за исключением того, что я установил местоположение каждой вершины в качестве их географического положения и на карте на карте границы состояния.

Я использую igraph для создания своей сети. В ggplot2 было несколько классных примеров сопоставления, поэтому мне интересно, если это вариант. Я думаю, что видел подобные варианты с использованием Pajek, но я надеюсь остаться в R.

карты в ggplot2

Любые идеи / идеи будут оценены.

  • барсук

1 ответ

Решение

У вас есть несколько пакетов, связанных с картами. Самый простой maps, который дает вам карту штатов. Вы можете построить вершины, используя координаты.

map("state")
points(longitute,latitude)

Этими графиками можно манипулировать и добавлять в базовые инструменты, помня, что ось x - это долгота, а ось y - это широта. края могут быть нанесены с помощью segments() функция.

В ggplot2 просто используйте map_data() функция, которая дает вам данные формы карты, и geom_polygon() добавить его в график в любой форме, которую вы хотите. Опять же, вы можете добавить вершины и ребра, используя координаты с соответствующей функцией ggplot2 geom_point() а также geom_segment(), Код, на который вы ссылаетесь, показывает вам, как, или иначе посмотрите на это для примера.

Кроме того, вы можете посмотреть на пакеты maptools, который предлагает больше функциональности и, mapproj, что позволяет разные проекции одной и той же карты. Вы также можете использовать эти пакеты для расчета географических расстояний в системе координат.

mapdata содержит больше баз данных и охватывает в основном весь мир. Вы можете работать с координатами довольно приятно.

Другие вопросы по тегам