Базовая карта государства Choropleth в R - PullRequest
2 голосов
/ 02 ноября 2010

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

Моя география - это нижние 48 штатов, включая округ Колумбия.Вот несколько первых строк набора данных, которые я хочу построить.

> head(choro, n=7)
    AL     AR     AZ     CA     CO     CT     DC 
 "red"  "red"  "red" "blue" "blue" "blue"  "red" 

Когда я пытаюсь построить базовую карту:

map("state",
        regions = names(choro),
        lty = 1, lwd =1,
        boundary=TRUE,
        fill=TRUE,
        col=choro)

прикрепленное изображение это то, что я вижуЯ новичок в R, но я представляю, что не заполненные состояния не слились правильно, хотя, я полагаю, я использую «стандартные» сокращения состояний.

Что я делаю не так! / Нужно исправить?

Буду очень признателен за любую помощь.

Ответы [ 2 ]

5 голосов
/ 02 ноября 2010

Если вы уберете регионы = имена (чоро), вы получите более заполненную карту.Если вы хотите, чтобы элементы, которые, возможно, отсутствуют в векторе choro, были нарисованы, то почему бы не заменить «белый» цветом? alt text Если вам нужен более полный ответ, предоставьте полную копию choro.

choro <- c( "red",  "red",  "red" ,"blue" ,"blue", "blue",  "red")
require(maps)
data(state)
names(choro) <-names(state)[1:7]
map("state",  lty = 1, lwd =1,
        boundary=TRUE, fill=TRUE,
        col=choro)

См. Прилагаемый рисунок:

1 голос
/ 02 ноября 2010

Смежный вопрос здесь: Проблема картографирования в R И учебное пособие здесь: http://www.thisisthegreenroom.com/2009/choropleths-in-r/

Как упоминалось ранее, вы захотите объединить ваши цвета с отображаемыми областями.Вторая ссылка выше демонстрирует метод сопоставления сокращений состояний с полными именами состояний, которые R хочет / должен использовать пакет maps.В зависимости от того, откуда поступают ваши данные choro, может быть проще заменить аббревиатуры состояний полными именами состояний перед чтением в R. Другая вещь, на которую следует обратить внимание, состоит в том, что на графике отображается 63 объекта состояний.Например, в Нью-Йорке есть несколько разных объектов.Сопоставление с этими дубликатами будет необходимо для создания полностью выглядящей карты.

Я бы порекомендовал сделать два вызова функции map - первый для построения заливки, второй для добавления другого контура.Например:

# Extract mapnames for States
mapnames <- data.frame(
    state = map("state",plot=FALSE)[4]$names
    , col = sample(c("pink", "purple", "lavender", "blue"), 63, replace = TRUE)
)

#Plot the colors
map("state", regions = mapnames$state, col = mapnames$col, fill = TRUE, lty = 1, lwd= 1)
#Plot the outlines
map("state", regions = mapnames$state, col = "black", fill = FALSE, add = TRUE, lty = 1, lwd = 1)

Вы также можете взглянуть на функцию map_data() в ggplot2, чтобы найти другие примеры объединения данных для легкого создания картограмм.

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