2015-05-15 38 views
1

我已經使用choroplethr和choroplethrMaps包製作了地圖。我的問題是,爲了繪製一個國家,這個國家必須包含在choroplethrMaps包中包含的country.regions和country.map數據框中。 因此,可以說這是我的地圖如何使用choroplethr- choroplethr添加國家到country.map-country.region的choroplethr地圖 -

install.packages("mapproj");library(mapproj) 
install.packages("choroplethr") 
install.packages("choroplethrMaps") 
library(choroplethr);library(choroplethrMaps);library(ggplot2) 
data(country.map) 
data(country.regions) 
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,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA) 
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","russia","belarus","germany","ukraine","iceland" 
      ,"netherlands","bosnia and herzegovina","albania","montenegro","macedonia","moldova","kosovo") 
datas<-data.frame(region=target,value=a) 
datas$region<-as.character(datas$region) 
gg <- country_choropleth(datas,num_colors=1,zoom=target) 
gg <- gg + xlim(-25.266001, 71.869301) 
gg <- gg + ylim(34.536311, 70.008797) 
gg <- gg + coord_map("lambert", lat0=27.636311, lat1=81.008797) 
gg<-gg+scale_fill_continuous(name="%",low="yellow", high="orange", na.value="grey") 
gg<-gg+theme(plot.background=element_rect(fill="dodgerblue",colour="black"),legend.position="bottom",legend.background = element_rect(),legend.text = element_text(size = 13, colour = "black")) 
gg 
因爲我在我的數據幀中的每個區域包含與在country.regions和country.map同名

enter image description here

一切順利。

我的問題是我想添加馬爾他和塞爾維亞地區到我的地圖,我有數據,我不能這樣做,因爲他們不包含在country.regions和country.map數據中的開發人員我試圖在country.map(使用地圖包的地理編碼(「馬耳他」)功能)中添加country.regions及其緯度和經度的國家名稱,但它不會那樣工作

回答

1

感謝您使用choroplethr。

我認爲你會發現很難簡單地將一個國家添加到?country.map。您所指的地理編碼功能僅返回一個經度和緯度點。但要畫出這個國家,你需要點來代表整個邊界。

但是,我寫了choroplethr來處理像這樣的情況,人們想在他們自己的地圖上使用choroplethr接口。以下是我建議你開始的方式。

  1. 閱讀維基頁面Mapmaking for R programmers
  2. 閱讀小插曲Creating Your Own Maps
  3. 如果您還有其他問題,您可能要張貼在choroplethr google group

從本質上講,我認爲你想找到一個滿足你需求的shapefile,並且足夠好地學習QGIS來打開shape文件並在其中徘徊。之後,它應該只是幾行R代碼和(希望)一些簡單的調試,讓choroplethr「爲你工作」。

對不起,我無法提供更具體的建議。我只是不知道去歐洲shapefiles去哪裏。但是如果你發現了這個問題,或者其他人發佈了它,我會將它添加到我的列表中。

1

對於記錄,choroplethrMaps確實包括塞爾維亞,但出於某種原因,您需要將其稱爲「塞爾維亞共和國」,而不僅僅是「塞爾維亞」。

相關問題