前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leaflet的小搭档leaflet.minicharts来了,从此动态地图又多了一些乐趣~~~

leaflet的小搭档leaflet.minicharts来了,从此动态地图又多了一些乐趣~~~

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

本文内容取材自leaflet.minicharts包官方主页的案例介绍,本篇案例虽然是关于leaflet在线地图的辅助包,但是该包的出现对于leaflet生态系统来说,确是有着划时代的意义。

该包大大扩充了leaflet包所能呈现的图表形式,打破了散点图、路径图、热力图三类图表对于传统地图数据呈现形式的垄断地位。

该包为此提供了气泡饼图、玫瑰图、mini柱形图以及时间维度控制器等多种数据可视化元素。

以下便是作者对该包的简要介绍及案例演示:

一直以来,借助于Rstudio团队开发的交互式地图工具包——leaflet,在R语言中创建交互式地图已非难事。但是该包仅仅提供了很少的集中图表呈现类型,因而在一张单独的地图上呈现的数据信息量被大大限制了。

倘若你要在地图上呈现一些点数据,你只能需要使用两个变量定位出这些点在地图上的位置,然后更改点的半径和点的填充颜色来呈现数据。

然后leaflet.minicharts包的出现大大改变了这一格局。你可以在利用其提供的两个附加函数,在leaflet包的交互地图上增加更多的mini图表。

这些mini图表可以呈现比之前多得多的变量数据(理论上不受变量数量的限制),目前为止,仅支持三种图表类型:

barcharts (the default), pie charts and polar area charts.

该包内提供了一个法国自2010~2017年包含电力产品、电力消费及结构变动趋势的数据集。


library("ggplot2") library("leaflet.minicharts") library(geojsonio) library(rgdal) data("eco2mix") head(eco2mix)

geojson <-readOGR("D:/R/mapdata/State/France.json","OGRGeoJSON",stringsAsFactors=FALSE) #导入json格式的法国地图数据素材

library(dplyr) prod2016 <- eco2mix %>% mutate( renewable = bioenergy + solar + wind + hydraulic, non_renewable = total - bioenergy - solar - wind - hydraulic ) %>% filter(grepl("2016",month) & area!= "France") %>% select(-month) %>% group_by(area,lat,lng) %>% summarise_all(sum) %>% ungroup() #抽取了法国2016年的能源消费结构数据信息:

library(leaflet) library(leafletCN) basemap <- leaflet(geojson,width ="100%",height="400px") %>% amap() %>% addPolygons(weight=1,color="#444444",opacity=1,fillColor ="white",fillOpacity =0.7,smoothFactor=0.5) #将地图背景保存为临时对象:

renewable2016 <- prod2016 %>% select(hydraulic,solar,wind) colors <- c("#3093e5","#fcba50","#a0d9e8") basemap %>% addMinicharts( prod2016$lng, prod2016$lat, chartdata = renewable2016, colorPalette = colors, width = 45, height = 45 ) #默认图表形式是柱形图

#气泡饼图 colors <- c("#4fc13c", "#cccccc") basemap %>% addMinicharts( prod2016$lng, prod2016$lat, type = "pie", chartdata = prod2016[, c("renewable", "non_renewable")], colorPalette = colors, width = 60 * sqrt(prod2016$total)/sqrt(max(prod2016$total)),transitionTime=0)

#玫瑰图1: basemap %>% addMinicharts( prod2016$lng, prod2016$lat, type = "polar-radius", chartdata = prod2016[, c("renewable", "non_renewable")], colorPalette = colors, width = 60 * sqrt(prod2016$total)/sqrt(max(prod2016$total)),transitionTime=0) #极坐标(玫瑰图)

#玫瑰图2: basemap %>% addMinicharts( prod2016$lng, prod2016$lat, type = "polar-area", chartdata = prod2016[, c("renewable", "non_renewable")], colorPalette = colors, width = 60 * sqrt(prod2016$total)/sqrt(max(prod2016$total)),transitionTime=0)

添加时间趋势:

#柱形图(带时间趋势) prodRegions <- eco2mix %>% filter(area != "France") basemap %>% addMinicharts( prodRegions$lng, prodRegions$lat, chartdata = prodRegions[, c("hydraulic", "solar", "wind")], time = prodRegions$month, colorPalette = colors, width = 45, height = 45 )

#饼图(带时间趋势) prodRegions <- eco2mix %>% filter(area != "France") basemap %>% addMinicharts( prodRegions$lng, prodRegions$lat, chartdata = prodRegions[, c("hydraulic", "solar", "wind")], time = prodRegions$month, colorPalette = colors, type="pie", width = 45, height = 45 )

#玫瑰图(带时间趋势) prodRegions <- eco2mix %>% filter(area != "France") basemap %>% addMinicharts( prodRegions$lng, prodRegions$lat, chartdata = prodRegions[, c("hydraulic", "solar", "wind")], time = prodRegions$month, colorPalette = colors, type="pie", width = 45, height = 45 )


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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档