Сетевой график и карта США в R - PullRequest
4 голосов
/ 17 октября 2010

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

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

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

карты в ggplot2

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

  • Брок

1 Ответ

8 голосов
/ 17 октября 2010

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...