【问题标题】:Map Australian cities - R spatial地图澳大利亚城市 - R 空间
【发布时间】:2016-10-25 02:51:27
【问题描述】:

我想绘制一张澳大利亚地图,并将每个城市表示为一个点。 然后突出显示人口较多的城市 (>1M)

library(sp)
library(maps)
data(canada.cities)
head(canada.cities)

我已经检查了可以为加拿大和其他一些国家/地区执行此操作的 sp 包。但澳大利亚的详细信息不存在。有没有一种特殊的方法可以获取我们喜欢的国家/地区的数据(城市名称、long、lat、pop)?

【问题讨论】:

  • 是的,我试过了,但它没有城市或任何人口详细信息
  • world.cities[world.cities$country.etc == "Australia",]map.cities(country = "Australia", minpop=1e6)
  • 谢谢。我使用 world.cities 获得了必要的数据。 map.cities() 是否绘制地图。我做了以下标记城市Aus_cities= world.cities[world.cities$country.etc == "Australia",]class(Aus_cities)plot(Aus_cities[Aus_cities@data$pop>1000000,],pch=16,col="red",cex=3,add=TRUE)

标签: r maps spatial sp


【解决方案1】:

现在你有了使用world.cities的数据,你可以用几种方式绘制它们

library(maps)
df <- world.cities[world.cities$country.etc == "Australia",]

点的基本图

plot(df[, c("long", "lat")])

ggmap

library(ggmap)

myMap <- get_map(location = "Australia", zoom = 4)

ggmap(myMap) +
geom_point(data = df[, c("long","lat", "pop")], aes(x=long, y = lat, colour = pop > 1000000))

leaflet 地图上

library(leaflet)

## define a palette for hte colour
pal <- colorNumeric(palette = "YlOrRd",
                    domain = df$pop)

leaflet(data = df) %>%
    addTiles() %>%
    addCircleMarkers(lat = ~lat, lng = ~long, popup = ~name, 
                     color = ~pal(pop), stroke = FALSE, fillOpacity = 0.6) %>%
    addLegend(position = "bottomleft", pal = pal, values = ~pop)

【讨论】:

  • 当我运行此代码时,我得到了地图的黄点、灰色区域和图例(不是分界线或轮廓,没有蓝色区域,地图上没有任何名称) - 知道为什么有人?
  • 我试图发布关于上述评论的图片,但有人叫 Samuel Liew 认为它删除了我的“答案”哈哈
  • @chris 你的“答案”不是答案,而是一个问题。这就是它被删除的原因。您需要提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 2020-12-05
  • 1970-01-01
  • 2016-11-14
  • 2012-05-22
  • 2020-07-28
  • 1970-01-01
  • 1970-01-01
  • 2015-05-03
相关资源
最近更新 更多