2015-05-06 6 views
2

Im пытается сделать choropleth карту европейских стран в соответствии с некоторой метрикой (в процентах от населения, испытавшего несчастный случай на работе) с использованием нового пакета choroplethr. Вот воспроизводимый пример, чтобы продемонстрировать 2 проблемы, которые мне нужно решить.R-choropleth maps- choroplethr package

a<-c(4.1,2.5,0.4,6.4,1.4,1.8,3.8,1.3,2.3,8.4,5.2,1.9,0.8,1.5,2.1,1.2,3.8,1.4,3.1,0.8,4.0,1.3,4.8,2.6,2.8,2.3,3.1,2.5) 
    target<-c("austria","belgium","bulgaria","switzerland","cyprus","czech republic","denmark", 
"estonia","spain","finland","france","greece","croatia","hungary","ireland","italy", 
"lithuania","luxembourg","latvia","norway","poland","portugal","romania","sweden", 
"slovenia","slovakia","turkey","united kingdom") 
datas<-data.frame(region=target,value=a) 
datas$region<-as.character(datas$region) 


install.packages("choroplethr") 
install.packages("choroplethrMaps") 
library(choroplethr);library(choroplethrMaps) 
data(country.map) 
data(country.regions) 

country_choropleth(datas,legend="%",num_colors=1,zoom=target) 

whole europe 1) Первая глубокая проблема, что я пришел на этой дополнительную области, которые принадлежат к некоторым странам (например, Франции) и не позволяйте карту увеличения полностью на Европе. Я дал параметр масштабирования всего вектора стран, которые существуют в кадре данных. , если я пытался country_choropleth(datas,legend="%",num_colors=1,zoom="switzerland") , то было бы увеличить только на швейцарии switzerland Проблема прибывает из таких стран, как Франция, где country_choropleth(datas,legend="%",num_colors=1,zoom="france") enter image description here

Так что я нужен способ, чтобы освободить участки, которые принадлежат к европейским странам и являются а не в европейском регионе. Есть идеи?

2) Вторая проблема, которая у меня есть, заключается в том, что внутри country.regions$region, где имеются доступные области с пакетом, отсутствует malta. Его единственное пятно на карте, но все же я не могу его пропустить. Есть ли способ добавить страну?

+0

трети вам также следует убедиться, что вы используете систему азимутальной системы равных областей Ламберта для ЕС, как это было предложено ЦСИ ЕС. – hrbrmstr

ответ

2

Возможно, вы должны задать два вопроса. Вы можете увеличить выход choropleth pkg другими объектами ggplot/эстетикой. Для того, чтобы «увеличить» и использовать близко к правильной проекции вы можете сделать:

library(ggplot2) 

gg <- country_choropleth(datas,legend="%",num_colors=1,zoom=target) 
gg <- gg + xlim(-31.266001, 39.869301) 
gg <- gg + ylim(27.636311, 81.008797) 
gg <- gg + coord_map("lambert", lat0=27.636311, lat1=81.008797) 
gg 

enter image description here

(и вы можете играть с ограничивающим окном координатами, чтобы получить в немного более жестком) \

+0

Благодарим за помощь, это было легко в конце. Хотя кажется, что результат более сфокусирован и лучше на мой вкус без последней строки. Не могли бы вы дать мне небольшой брифинг о coord_map и если есть какие-то конкретные причины для его использования? Еще раз спасибо –

+1

Это изменение проекции. [Это] (http://ec.europa.eu/eurostat/documents/4311134/4366152/Map-projections-EUROPE.pdf/460d90e4-b7f2-49b7-8962-5c860c76757d) является хорошим путеводителем для Европы и (ЕС) прогнозы. Выбор проекции может оказать существенное влияние на то, как интерпретируется карта. Вы должны абсолютно использовать некоторый 'coord_map', поэтому у вас есть фиксированное соотношение сторон, но вы также должны выбрать проекцию, которая имеет смысл и достоверно представляет данные. – hrbrmstr

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