用ggplot在R中绘制google地图
我正在尝试使用RgoogleMaps包来绘制查询到的图形,并将其与ggplot相结合。最后,我想用用ggplot在R中绘制google地图,r,google-maps,ggplot2,geocoding,ggmap,R,Google Maps,Ggplot2,Geocoding,Ggmap,我正在尝试使用RgoogleMaps包来绘制查询到的图形,并将其与ggplot相结合。最后,我想用geom_point显示总人口,有点类似于下图,但由于过度绘制,我试图集中在蒙哥马利地区 我很沮丧,因为我无法在R中绘制查询到的地图。我尝试了几个软件包,如read.jpeg和png,但效果不太理想 R代码: #query google map al1 <- GetMap(center=c(32.362563,-86.304474), zoom=11, destfile = "al2.jpeg
geom_point
显示总人口,有点类似于下图,但由于过度绘制,我试图集中在蒙哥马利地区
我很沮丧,因为我无法在R中绘制查询到的地图。我尝试了几个软件包,如read.jpeg
和png
,但效果不太理想
R代码:
#query google map
al1 <- GetMap(center=c(32.362563,-86.304474), zoom=11, destfile = "al2.jpeg",
format="jpg",maptype="roadmap")
#load only specific states
alabama <- subset(all_states, region %in% c("alabama"))
#population
p1 <- ggplot()
p1 <- p1 + geom_polygon(data=alabama,
aes(x=long, y=lat, group=group), colour="white", fill="grey10")
p1 <- p1 + geom_point(data=quote, aes(x=IntPtLon, y=IntPtLat, size=TotPop,
color=TotPop),colour="coral1") + scale_size(name="Total Pop")
#查询谷歌地图
al1这就是你想要的。它使用了ggmap
包,简化了流程。有关更多选项,请参见?get_map
和?ggmap
。一个很好的资源是可用的
您可能希望查看ggmap和OpenStreetMap软件包,这两个软件包都支持ggplot2光栅绘图这里有一个来自wiki的很好的示例,可能有助于查看:啊哈!我刚找到这个网站,得到了我的答案。缺点是它确实需要一些时间来绘制,所以我将查看ggmap和OSM。谢谢大家!如果您向我们展示用于制作第二个示例的代码,我相信有人会向您展示如何在贴图定义之外添加透明度(例如,使用alpha=0.5
,就像您在上面使用点颜色时所做的那样),并更改点的缩放比例(请参见中的范围
参数)好的,添加scale\u区域(范围=c(0,25))
成功了。感谢BenBolkerYes的提示,除此之外,我想在这张地图的顶部绘制点(可能使用geom_point),但同时我想让它在视觉上吸引人。我不希望我的点隐藏/覆盖现有的地图信息。有什么想法吗?使点半透明?你可以使用常规ggplot2几何图形向al1Map添加额外的层。因此,要添加点,那么类似于al1MAP+geom_点(data=data,aes(x=x,y=y))
就可以了。至于不想覆盖现有的地图信息,我不能帮你。也许您可以尝试不同的地图样式,以找到包含较少细节的内容。@Sandy,我认为ggplot2不支持ggmap图层。我收到以下错误消息:“ggplot2不知道如何处理uneval类的数据”@PaulRigor,它适合我。创建一个数据框,只要一个点就可以了:data=data.frame(x=-86.35,y=32.4)
将该点添加到al1MAP:al1MAP+geom_点(data=data,aes(x=x,y=y),color=“red”,size=5)
我在65号公路以西的河里看到一个大红点。
al1 <- get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, maptype = 'terrain')
al1MAP <- ggmap(al1)+ geom_point(data=quote_mgm, aes(x=IntPtLon, y=IntPtLat, size=TotPop))
library(ggmap)
al1 = get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, maptype = 'roadmap')
al1MAP = ggmap(al1)
al1MAP