2017-06-13 38 views
1

世界範圍geo.json從這裏下載。 https://github.com/johan/world.geo.json如何使用傳單繪製基於國家的choropleths R

我想突出顯示3個國家(在世界地圖視圖中),並根據該國家項目的數量以漸變顏色繪製它們。

我這裏還有我的步驟:

首先下載世界邊界geo.json文件並讀取它作爲底圖; 然後我嘗試在我的數據中突出顯示國家多邊形。然而事實證明,所有的世界國家都有着不同的顏色,並被3個國家的信息貼上標籤。它是幾何數據框子集問題?

WorldCountry <-geojsonio::geojson_read("./GeoData/countries.geo.json", what = "sp") 

#Dataframe for choropleth map 
Country <- c("Bulgaria","Pakistan","Turkey") 
Projects <- c(2,1,6) 
data <- data.frame(Country,Projects) 

#basemap 
Map <- leaflet(WorldCountry) %>% addTiles() %>% addPolygons() 

#set bin and color for choropleth map 
bins <- c(0,1,2,3,4,5,6,7,8,9,10,Inf) 
pal <- colorBin("YlOrRd", domain = data$Projects, bins = bins) 

#set labels 
labels <- sprintf(
    "<strong>%s</strong><br/>%g projects <sup></sup>", 
    data$Country, data$Projects) %>% lapply(htmltools::HTML) 

#add polygons,labels and mouse over effect 
Map %>% addPolygons(
    fillColor = ~pal(data$Projects), 
    weight = 2, 
    opacity = 1, 
    color = 'white', 
    dashArray = '3', 
    fillOpacity = 0.7, 
    highlight = highlightOptions(
    weight = 5, 
    color = "#666", 
    dashArray = "", 
    fillOpacity = 0.7, 
    bringToFront = TRUE), 
    label = labels, 
    labelOptions = labelOptions(
    style = list("font-weight" = "normal", padding = "3px 8px"), 
    textsize = "15px", 
    direction = "auto") 
) 

我期待這樣的事情:

enter image description here

回答

1

這將這樣的伎倆!子世界國家使用:

data_Map <- WorldCountry[WorldCountry$id %in% data$Country, ] 
Map <- leaflet(data_Map) %>% addTiles() %>% addPolygons()