【问题标题】:How to add a country to country.map-country.region for a choropleth map using choroplethr- choroplethrMaps-如何使用 choropleth- choropleth Maps- 将国家添加到 country.map-country.region 以获取 choropleth 地图-
【发布时间】:2015-07-27 11:03:08
【问题描述】:

我已经使用 choroplethr 和 choroplethrMaps 包制作了地图。我的问题是,为了绘制一个 country ,这个 country 必须包含在 choroplethrMaps 包中包含的 country.regions 和 country.map 数据框中。 所以可以说这是我的地图

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 中具有相同的名称。

我的问题是我想将马耳他和塞尔维亚地区添加到我的地图中,我有这些地区的数据,但我不能这样做,因为 country.regions 和 country.map 数据框中的开发人员不包含它们.我尝试将国家/地区的名称添加到 country.regions 及其在 country.map 中的纬度和经度(使用地图包的 geocode("malta") 功能),但它不起作用

【问题讨论】:

    标签: r choropleth choroplethr


    【解决方案1】:

    感谢您使用 choroplethr。

    我认为你会发现很难简单地将国家添加到?country.map。您引用的地理编码函数仅返回单个经度和纬度点。但是要绘制国家,您需要点来代表整个边界。

    但是,我编写了 choroplethr 来处理这样的情况,人们希望将 choroplethr 界面用于他们自己的地图。以下是我建议您开始使用的方法。

    1. 阅读维基页面Mapmaking for R programmers
    2. 阅读小插图Creating Your Own Maps
    3. 如果您还有其他问题,可以在choroplethr google group 上发帖

    本质上,我认为您想找到一个满足您需求的 shapefile 并足够好地学习 QGIS 以打开 shapefile 并在其中四处寻找。之后,应该只需要几行 R 代码和(希望)一些简单的调试,让 choroplethr“正常工作”。

    很抱歉,我无法提供更具体的建议。我只是不知道去哪里获取欧洲 shapefile。但是如果你发现了,或者如果其他人发布了它,我会将它添加到我的列表中。

    【讨论】:

      【解决方案2】:

      据记录,choroplethrMaps 确实包括塞尔维亚,但出于某种原因,您需要将其称为“塞尔维亚共和国”,而不仅仅是“塞尔维亚”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多