gpt4 book ai didi

r - 世界地图与R?

转载 作者:行者123 更新时间:2023-12-04 12:32:29 24 4
gpt4 key购买 nike

我有一个数组可以告诉我每个国家的观察次数。

countries <- structure(c(532L, 3L, 1L, 15L, 1L, 1L, 2L, 3L, 16L, 2L, 43L, 
1L, 2L, 2L, 1L, 1L, 1L, 3L, 2L, 1L, 4L, 4L, 16L, 13L, 2L, 2L,
9L, 1L, 1L, 5L, 3L, 5L, 1L, 1L, 3L, 1L, 10L, 11L, 4L, 2L, 1L,
7L, 1L, 2L, 6L, 7L, 1L, 6L, 1L, 2L, 7L, 1L, 20L, 1L, 2L, 1L,
3L, 2L, 5L, 76L, 2L, 1L, 1L), .Dim = 63L, .Dimnames = structure(list(
c("United States", "Argentina", "Armenia", "Australia", "Austria",
"Bangladesh", "Belarus", "Belgium", "Brazil", "Bulgaria",
"Canada", "Chile", "China", "Colombia", "Croatia", "Cuba",
"Cyprus", "Czech Republic", "Dominican Republic", "Ecuador",
"Estonia", "France", "Germany", "Greece", "Guatemala", "Hong Kong",
"India", "Indonesia", "Iran", "Ireland", "Israel", "Italy",
"Kazakhstan", "Kenya", "Latvia", "Malaysia", "Mexico", "Netherlands",
"New Zealand", "Norway", "Peru", "Philippines", "Poland",
"Portugal", "Romania", "Russia", "Saudi Arabia", "Serbia",
"Singapore", "Slovakia", "South Africa", "South Korea", "Spain",
"Sri Lanka", "Sweden", "Switzerland", "Thailand", "Turkey",
"Ukraine", "United Kingdom", "Uruguay", "Uzbekistan", "Venezuela"
)), .Names = ""))

我可以使用 map 库绘制 map 。但我会很感激帮助使它看起来更好。
library(maps)
map(database="world")
map(database="world", col=countries, fil=countries)
legend("topleft", fill = countries, legend = countries, col = countries)
box()

第一个大问题是传说。连续的比例可能看起来比每个国家的一种颜色更好,但不知道该怎么做。修复此问题后,任何可以使它看起来更好的事情将不胜感激。

谢谢!

我可以使用 googleVis 制作动态 map ,但在使用 ggplot2 制作静态 map 时遇到了麻烦。例如,使用 ggplot2 看起来我在美国没有人。

这是我的代码
#Load My data
countries <- structure(list(country = c("United States", "Afghanistan", "Albania",
"Argentina", "Armenia", "Australia", "Austria", "Bahrain", "Bangladesh",
"Belarus", "Belgium", "Bosnia and Herzegovina", "Brazil", "Bulgaria",
"Canada", "Chile", "China", "Colombia", "Croatia", "Cuba", "Cyprus",
"Czech Republic", "Denmark", "Dominican Republic", "Ecuador",
"Egypt", "El Salvador", "Estonia", "Finland", "France", "Germany",
"Greece", "Guatemala", "Haiti", "Hong Kong", "Hungary", "Iceland",
"India", "Indonesia", "Iran", "Ireland", "Israel", "Italy", "Japan",
"Jordan", "Kazakhstan", "Kenya", "Korea, South", "Latvia", "Libya",
"Lithuania", "Macedonia", "Malaysia", "Malta", "Mexico", "Moldova",
"Morocco", "Netherlands", "New Zealand", "Nicaragua", "Niger",
"Nigeria", "Norway", "Pakistan", "Panama", "Peru", "Philippines",
"Poland", "Portugal", "Romania", "Russia", "Saudi Arabia", "Serbia",
"Singapore", "Slovakia", "Slovenia", "Somalia", "South Africa",
"South Korea", "Spain", "Sri Lanka", "Sweden", "Switzerland",
"Taiwan", "Thailand", "Turkey", "Ukraine", "United Arab Emirates",
"United Kingdom", "Uruguay", "Uzbekistan", "Venezuela", "Zimbabwe"
), count = c(1224L, 1L, 1L, 4L, 2L, 40L, 2L, 1L, 2L, 5L, 8L,
2L, 40L, 3L, 106L, 4L, 16L, 10L, 8L, 4L, 2L, 5L, 4L, 5L, 3L,
1L, 2L, 5L, 1L, 10L, 26L, 41L, 3L, 1L, 3L, 2L, 1L, 34L, 2L, 3L,
10L, 4L, 19L, 1L, 1L, 1L, 1L, 1L, 4L, 1L, 3L, 1L, 2L, 2L, 36L,
1L, 1L, 31L, 10L, 1L, 1L, 1L, 2L, 6L, 2L, 3L, 29L, 7L, 11L, 13L,
21L, 5L, 9L, 6L, 3L, 2L, 1L, 22L, 2L, 42L, 1L, 3L, 5L, 2L, 6L,
5L, 13L, 2L, 157L, 4L, 1L, 5L, 1L)), .Names = c("country", "count"
), row.names = c(NA, -93L), class = "data.frame")

#Make dynamic map
library(googleVis)
# Make the map!
geoMap <- gvisGeoMap(countries, locationvar="country", numvar="count",
options=list(dataMode="regions"))
plot(geoMap)

#Make ggplot2 map
library(maps)
library(ggplot2)
#load world data
world <- map_data("world")

#Delete Antarctica
world <- subset(world,region!="Antarctica")
#Add count
world$count<-countries$count[match(world$region,countries$country,nomatch=NA)]
qplot(long, lat, data = world, group = group, fill=count, geom ="polygon",ylab="",xlab="")

为什么 ggplot2 map 是错误的?我该如何解决?

谢谢!

最佳答案

这可能不是您想要的,但这里有一个使用 googleVis 的解决方案包裹。

# I had to change your data a little bit
countries2 <- data.frame(country=names(countries), count=as.integer(countries),
stringsAsFactors=FALSE)

# Install the googleVis package and load it
# install.packages("googleVis")
library(googleVis)

# Make the map!
geoMap <- gvisGeoMap(countries2, locationvar="country", numvar="count",
options=list(dataMode="regions"))
plot(geoMap)

这将创建一个交互式 Geo Map您的数据,当您将鼠标悬停在不同的区域上时,它应该突出显示它并显示计数的弹出窗口。

(我很抱歉 - 这个问题只是尝试这个包的借口:)。 )

如果你想要一个静态图,我也可以尝试制作。

关于r - 世界地图与R?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20079308/

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