如何使用ggplot绘制美国城市?

时间:2015-03-13 16:55:05

标签: r ggplot2 ggmap

我可以把路易斯安那州的情况很好......

require(ggplot2)
require(ggmap)
require(maps)
LA <- map_data("state", region="louisiana")
ggplot(LA, aes(x=long, y=lat))+geom_polygon()

enter image description here

现在,我有关于洛杉矶特定城市的销售电话数量的数据。如何为每个城市添加一个积分,以便对图表进行销售调用?

salesCalls <- data.frame(State=rep("louisiana",5), 
                             City=c("Baton Rouge", "New Orleans", "Shreveport", "Lafayette", "Mandeville"),
                             Calls=c(10,5,8,13,2))
salesCalls
      State        City Calls
1 louisiana Baton Rouge    10
2 louisiana New Orleans     5
3 louisiana  Shreveport     8
4 louisiana   Lafayette    13
5 louisiana  Mandeville     2

2 个答案:

答案 0 :(得分:12)

require(ggplot2)
require(ggmap)
require(maps)
LA <- map_data("state", region="louisiana")

salesCalls <- data.frame(State=rep("louisiana",5), 
                         City=c("Baton Rouge", "New Orleans", "Shreveport", 
                                "Lafayette", "Mandeville"),
                         Calls=c(10,5,8,13,2))

salesCalls <- cbind(geocode(as.character(salesCalls$City)), salesCalls)

salesCalls
#         lon      lat     State        City Calls
# 1 -91.14032 30.45828 louisiana Baton Rouge    10
# 2 -90.07153 29.95107 louisiana New Orleans     5
# 3 -93.75018 32.52515 louisiana  Shreveport     8
# 4 -92.01984 30.22409 louisiana   Lafayette    13
# 5 -90.06563 30.35825 louisiana  Mandeville     2

ggplot(LA, aes(x=long, y=lat)) +
  geom_polygon() +
  coord_map() +
  geom_point(data=salesCalls, aes(x=lon, y=lat, size=Calls), color="orange")

ggplot2

在Google地图上:

ggmap(get_map(location = 'Louisiana', zoom = 7)) +
  geom_point(data=salesCalls, aes(x=lon, y=lat, size=Calls), color="orange")

Google Map

答案 1 :(得分:0)

以下脚本适用于Google地图部分:

ggmap(get_map(location ='Louisiana',zoom = 7))+   geom_point(data = salesCalls,aes(x = salesCalls $ lon,y = salesCalls $ lat,size = salesCalls $ Calls),color =“orange”)