之前在练习leaflet的时候没有找到R语言leaflet中的热力密度图接口函数,一直感觉很遗憾。
最近在Stack Overflow上面发现了leaflet包的一个插件leaflet.esri包,结合leaflet可以在R语言中提供非常完美的热力密度图解决方案,顿时觉得发现了新大陆,立马分享给大家具体的实现思路。
library("leaflet")
library("leafletCN")
library("leaflet.extras")
library("xlsx")
mydata "D:/Python/File/Cities2015.xlsx",
sheetName="Sheet1",
header=T,
encoding='UTF-8',
stringsAsFactors=FALSE,
check.names=FALSE
) %>%
na.omit()
1、默认状态下热力图效果:
leaflet(mydata) %>%
addTiles() %>%
addHeatmap(lng = ~lon, lat = ~lat, radius = 8)
2、通过addTiles加载高德地图:
leaflet(mydata) %>%
addTiles( 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
options = tileOptions(tileSize=256,minZoom=4,maxZoom=17),
attribution='© 高德地图',
) %>%
addHeatmap(lng = ~lon, lat = ~lat, radius = 8)
3、这里可以借用leafletCN::amap函数简化高德地图的调用,该函数封装了高德地图api的接口
leaflet(mydata) %>% leafletCN::amap() %>%
addHeatmap(lng = ~lon, lat = ~lat, radius = 8)
4、当然腾讯地图的调用也是可以支持的:
leaflet(mydata) %>%
addTiles( 'http://rt{s}.map.gtimg.com/realtimerender?z={z}&x={x}&y={y}&type=vector&style=0',
options = tileOptions(tms=TRUE, tileSize=256, minZoom=4, maxZoom=17, subdomains="0123"),
attribution = '© 腾讯地图'
) %>% setView(116.40,39.90, zoom = 4) %>%
addHeatmap(lng = ~lon, lat = ~lat, radius = 8)
以上参数中tileSize控制默认显式地图窗口面积,minZoom代码缩放的最大级别(比例尺越大),同理maxZoom=17代表缩放的最小级别(比例尺越小)。
如果你还想了解leafelt更为丰富的用法和特性,请参考以下这些分享,期待大家可以将这些在线地图丰富的可视化特性结合shiny容器打造出更具业务价值的数据分析看板和仪表盘,也期待同样喜欢可视化的小伙伴儿可以一起线上线下交流。
书籍推荐
《R数据可视化之美:专业图表绘制指南》以 R 语言为背景,通俗易懂地讲述了大量数据可视化领域的专业知识,从图形语法、色彩原理、视觉通道到各类图表的应用实践。
书籍配套开源R代码地址
https://github.com/EasyChart/Beautiful-Visualization-with-R
如需联系EasyCharts团队
请加微信:
EasyCharts