gpt4 book ai didi

r - 在 R 中绘制 1990 年前的世界地图

转载 作者:行者123 更新时间:2023-12-02 04:27:01 27 4
gpt4 key购买 nike

我正在处理 1991 年之前的一些全局数据,因此在苏联、南斯拉夫和捷克斯洛伐克 split 之前。我想使用 rworldmap 或 map 绘制数据,但该包似乎只有现代世界地图可以轻松访问。所有 1991 年之前的国家/地区都显示为空白,并且边界将 1991 年之后的国家/地区分开。

此代码生成历史 map :

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

编辑:另外,根据下面的有用评论,历史 map shapefile 很容易从以下位置获得:

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

但我不知道是否可以将其与 rworldmap 函数结合使用……或者我是否必须弄清楚如何使用 maps 包,这似乎工作方式不同。 (或者也许有一个 ggplot 解决方案?)

我目前使用的 rworldmap 代码(获取现代 map )是:

#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

最佳答案

啊哈,有一个使用 mapdata 包中的旧 map 的 ggplot 解决方案:

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

(映射代码借自 this 帖子,干杯@hrbrmstr)

关于r - 在 R 中绘制 1990 年前的世界地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53500602/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com