簡體   English   中英

在R中繪制1990年以前的世界地圖

[英]Plot pre-1990 world map in R

我正在研究1991年以前的一些全球數據,因此在蘇聯,南斯拉夫和捷克斯洛伐克分裂之前。 我想使用rworldmap或地圖繪制數據,但該包似乎只能輕松訪問現代世界地圖。 所有1991年以前的國家都顯示出空白,並且邊界除以1991年后的同行。

此代碼生成歷史地圖:

if (requireNamespace("mapdata", quietly=TRUE) && packageVersion("mapdata") >= "2.3")
 {map("mapdata::worldLores", fill = TRUE, col = 1:10)}

編輯 :另外,根據下面的有用評論,可以從以下位置輕松獲取歷史地圖shapefile:

library(cshapes)
cshp.data<-cshp(as.Date("1990-01-01"))
plot(cshp.data)

但是我無法弄清楚是否有可能將它與rworldmap函數結合起來......或者如果我必須弄清楚如何使用maps包,這似乎有所不同。 (或者也許有一個ggplot解決方案?)

我目前使用的rworldmap代碼(獲取現代地圖)是:

#make example data including Soviet Union
country <- as.vector(c("Afghanistan","Australia","Iceland","Soviet Union", 
"Zimbabwe"))
value <- as.vector(c(5,10,100,10,50))
df<-data.frame(country,value)

#make map
map1 <- joinCountryData2Map(df, joinCode = "NAME", nameJoinColumn = 
"country")
mapCountryData( map1, addLegend=F, catMethod="fixedWidth", 
nameColumnToPlot="value" )
#...Soviet Union is blank

啊,有一個ggplot解決方案使用mapdata包中的舊地圖:

library(ggplot2)
library(dplyr)
library(mapdata)

df<-data.frame(country=c("Afghanistan","Australia","Iceland","USSR","Zimbabwe"),
           value=c(5,10,100,10,50),stringsAsFactors=FALSE)

WorldData <- map_data('worldLores') #use the old map
WorldData <- fortify(WorldData)

mapped <- ggplot() +
  geom_map(data=WorldData, map=WorldData,
              aes(x=long, y=lat, group=group, map_id=region),
              fill="white", colour="#7f7f7f", size=0.5) +
  geom_map(data=df, map=WorldData,
              aes(fill=value, map_id=country),
              colour="#7f7f7f", size=0.5)
mapped

(從這篇文章借來的映射代碼,歡呼@hrbrmstr)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM