2010-11-02 2 views
2

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

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

> 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) 

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

Что я делаю неправильно?/Необходимо исправить?

Любая помощь будет очень оценена.

+0

Для choropleth, как это, я рекомендую проверить пакет choroplethr. Он предназначен для упрощения: https://github.com/trulia/choroplethr – Ari

ответ

4

Если вы выберете области = имена (choro), вы получите более полную карту. Если вы хотите, чтобы элементы, которые, вероятно, отсутствовали в векторе 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) 

Смотрите приложенный графику:

+0

Когда я удаляю линию регионов, моя карта заполняется полностью. Тем не менее, я подозреваю, что я должен упорядочить данные в моем векторе choro, чтобы он соответствовал порядку состояний, и это нормально, если оно работает. Самый простой способ сделать линию данных? – Btibert3

+0

Точно верно. Цветовой вектор получает рециркуляцию, поэтому любые состояния, которые вы также хотите выделить, нуждаются в «белом» цвете. Чтобы увидеть правильные аббревиатуры состояний, введите> state.abb –

1

Похожие вопросы здесь: Choropleth mapping issue in R И учебник здесь: http://www.thisisthegreenroom.com/2009/choropleths-in-r/

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

Я бы рекомендовал сделать два вызова функции 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 для других примеров объединения данных для создания карт легко choropleth.

+0

Спасибо за ссылки. Я видел учебник по зелёным улочкам, и это было немного над моей головой. Это, похоже, больше соответствует моим моим рабочим знаниям Р. Я сделаю это. Благодаря!! – Btibert3

Смежные вопросы