前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >动态地理信息可视化——散点地图系列

动态地理信息可视化——散点地图系列

作者头像
数据小磨坊
发布2018-04-11 16:16:04
1.6K0
发布2018-04-11 16:16:04
举报
文章被收录于专栏:数据小魔方数据小魔方

这是一篇拖了好久的稿子,因为过年玩high了,一直放着没写,今天得空,赶快得空,赶紧整理一下。

本篇主讲leaflet在线地图系列中的散点系列,包含颜色映射规则(离散和连续)、大小映射规则。

其实也就是包含了我们看到的常规的散点图类型和气泡图类型。同时结合leaflet丰富多彩的背景地图主题进行展开。

#加载包: library(plyr) library(maps) library(mapdata) library(leaflet) library(stringi) library(maptools) library(htmltools) library(RColorBrewer) library(ggplot2)

为方便展示这里统一使用中国省级行政地图(shp格式导入),在省会城市坐标进行指标数据映射。

地图素材数据导入: province_city <- read.csv("c:/rstudy/chinaprovincecity.csv") #中国各省省会坐标 province_city$size<-round(runif(34,5,10),2) #添加连续数值变量 province_city$type<-factor(sample(LETTERS[1:5],34,replace=TRUE)) #添加因子变量以便之后演示 co<-substr(rainbow(34),1,7) province_city<-data.frame(province_city,co)

制作色盘: pal <- colorFactor(c("green", "red","yellow","green","blue"), domain = c("A", "B","C","D","E"))#因子变量的映射色盘 cPal <- colorNumeric(palette = c("blue","yellow","red"),domain =province_city$size) #数值型变量的映射色盘

作图函数: leaflet(province_city)%>%addTiles()%>% addMarkers(lng=~jd,lat=~wd,popup=~city)

leaflet(province_city)%>%addTiles()%>% addCircles(lng=~jd,lat=~wd,color="red",weight=~size,popup=~city)

leaflet(province_city)%>%addTiles()%>% addCircleMarkers(lng=~jd,lat=~wd,radius=~size, color = ~co, fill=TRUE,popup=~city)

离散标度映射: leaflet(province_city)%>%addTiles()%>% addCircles(lng=~jd,lat=~wd,color = ~pal(type),weight=~size,popup=~city)%>% addLegend("bottomright",pal=pal,values = ~type,title = "GDP等级",labFormat = labelFormat(suffix = "档"),opacity=1) leaflet(province_city)%>%addTiles()%>% addCircleMarkers(lng=~jd,lat=~wd,color = ~pal(type),radius = ~size,fill=TRUE,popup=~city) addLegend("bottomright",pal=pal,values = ~type,title = "GDP等级",labFormat = labelFormat(suffix = "档"),opacity=1)

连续标度映射: leaflet(province_city)%>%addTiles()%>% addCircles(lng=~jd,lat=~wd,fillColor=~cPal(size),weight=~size,stroke=FALSE,fillOpacity=0.8,popup=~city)%>% addLegend("bottomright",pal=cPal,values = ~size,title = "GDP等级",labFormat = labelFormat(suffix = "档"),opacity=1) leaflet(province_city)%>%addTiles()%>% addCircleMarkers(lng=~jd,lat=~wd,fillColor=~cPal(size),radius = ~size,stroke=FALSE,fillOpacity=0.8,popup=~city)%>% addLegend("bottomright",pal=cPal,values = ~size,title = "GDP等级",labFormat = labelFormat(suffix = "档"),opacity=1)

几种常见的地图风格主题效果:

默认点形状与几种常见的地图主题风格搭配效果:

leaflet(province_city)%>%addProviderTiles("Esri.WorldStreetMap")%>%addMarkers(lng=~jd,lat=~wd,popup=~city) leaflet(province_city)%>%addProviderTiles("Esri.WorldImagery")%>%addMarkers(lng=~jd,lat=~wd,popup=~city) leaflet(province_city)%>%addProviderTiles("Esri.WorldTerrain")%>%addMarkers(lng=~jd,lat=~wd,popup=~city) leaflet(province_city)%>%addProviderTiles("Esri.NatGeoWorldMap")%>%addMarkers(lng=~jd,lat=~wd,popup=~city)

#####################################################################

实心点形状与几种常见的地图主题风格搭配效果: leaflet(province_city)%>%addProviderTiles("Esri.WorldStreetMap")%>%addCircles(lng=~jd,lat=~wd,color="red",weight=~size,popup=~city) leaflet(province_city)%>%addProviderTiles("Esri.WorldImagery")%>%addCircles(lng=~jd,lat=~wd,color="red",weight=~size,popup=~city) leaflet(province_city)%>%addProviderTiles("Esri.WorldTerrain")%>%addCircles(lng=~jd,lat=~wd,color="red",weight=~size,popup=~city) leaflet(province_city)%>%addProviderTiles("Esri.NatGeoWorldMap")%>%addCircles(lng=~jd,lat=~wd,color="red",weight=~size,popup=~city)

#####################################################################

带轮廓的点形状与几种常见的地图主题风格搭配效果:

leaflet(province_city)%>%addProviderTiles("Esri.WorldStreetMap")%>%addCircleMarkers(lng=~jd,lat=~wd,radius=~size,color=~co,fill=TRUE,popup=~city) leaflet(province_city)%>%addProviderTiles("Esri.WorldImagery")%>%addCircleMarkers(lng=~jd,lat=~wd,radius=~size,color=~co,fill=TRUE,popup=~city) leaflet(province_city)%>%addProviderTiles("Esri.WorldTerrain")%>%addCircleMarkers(lng=~jd,lat=~wd,radius=~size,color=~co,fill=TRUE,popup=~city) leaflet(province_city)%>%addProviderTiles("Esri.NatGeoWorldMap")%>%addCircleMarkers(lng=~jd,lat=~wd,radius=~size,color=~co,fill=TRUE,popup=~city)

可选择的地图类型: addProviderTiles("Esri.WorldStreetMap") #浅色 addProviderTiles("Esri.WorldImagery") #深色深色卫星云图 addProviderTiles("Esri.WorldTerrain") #亮白色 addProviderTiles("Esri.NatGeoWorldMap") #深沉轮廓色 addProviderTiles("Stamen.Toner") #Third-Party Tiles addProviderTiles("Acetate.terrain") # addProviderTiles("CartoDB.Positron") addProviderTiles("Stamen.TonerLabels") #

本篇点形状是可以支持自定义的,需要使用网络图标资源,但是鉴于步骤和实用性,就此略过,如果感兴趣,可以私下探讨。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据小魔方 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档