用leaflet做地图数据分析与可视化
我们先用高德api获取成都盒马鲜生的门店位置:
import requests
r = requests.get('https://restapi.amap.com/v3/place/text?keywords=盒马鲜生&page=2&city=510100&citylimit=true&key=xxxxxxxxxxx')
leaflet是个特别好的地图可视化库
library(tidyverse)
library(leaflet)
library(leafletCN)
hema1 <- read_csv("hema1.txt", col_names = FALSE)
hema1%>% filter(X1=='成都市') %>% leaflet() %>% amap() %>%addMarkers(lng=~X3,lat=~X4,clusterOptions = markerClusterOptions())
缩放可以自动聚类
地图数据分析,要考虑地图数据的结构。对于点,比较简单,只要处理经纬度即可。对于更复杂的形状,例如多边形,要深入到SpatialPolygons(sp包),MULTIPOLYGON(sf包)等数据结构,可以参考各种文档。
虽然leaflet提供了自动聚类的方法,但我们经常需要自己来做聚类。最常用的聚类算法是kmeans和各种变体。kmeans有中心,所以大体上会聚类成一个圆形。
另一个常用的聚类方法是dbscan,这个算法基于密度,可以形成各种形状。可以用mlpack包来做dbscan。
library(mlpack)
d2 <- dbscan(input = hema1%>% filter(X1=='成都市')%>%select(c(X3,X4)),epsilon=0.05, min_size=1
)
# d2
c <- d2$centroids
# data.frame(c)
data.frame(c) %>% leaflet() %>% amap() %>%addMarkers(lng=~X1,lat=~X2)
下面是用dbscan聚类后的中心点的可视化结果,可以看到中心位置与leaflet自动聚类大体上接近,但内部点应该有较大差异。
如果想把聚类中的点都画出来,需要用到凸包。R语言提供了函数chull。
这里简单尝试一下
chengdu <- hema1%>% filter(X1=='成都市')%>%select(c(X2,X3,X4))
chengdu$cluster <- d2$assignments
View(chengdu)chengdu%>%filter(cluster==1)%>%select(c(X3,X4))%>%chull()
chengdu%>%filter(cluster==1)chengdu1 <- chengdu%>%filter(cluster==1)%>%select(c(X3,X4))
hull1 <- chengdu1[chengdu1%>%chull(),]
chengdu2 <- chengdu%>%filter(cluster==2)%>%select(c(X3,X4))
hull2 <- chengdu2[chengdu2%>%chull(),]leaflet() %>% amap() %>%addPolygons(data=hull1,lng=~X3,lat=~X4) %>%addPolygons(data=hull2,lng=~X3,lat=~X4) %>%addMarkers(data=chengdu,lng=~X3,lat=~X4)
现在能看出我们选择的参数是的dbscan聚类的形状更倾向于条状。这里这个聚类意义不大。但是可以通过反复尝试不同的参数得到更有意义的结果
用leaflet做地图数据分析与可视化相关推荐
- kaggle:NBA球员投篮数据分析与可视化
感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答.求职一站式搞定! 本文作者:天善智能社区专家鲁伟 天善智能社区地址:htt ...
- kaggle:NBA球员投篮数据分析与可视化(一)
作为数据科学领域的金字招牌,kaggle已成为世界上最受欢迎的数据科学竞赛平台.在kaggle上,每个竞赛题下都藏匿着大批来自世界各地并且身怀绝技的数据科学家.作为一种众包模式,kaggle通过收取部 ...
- [数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化
本文主要介绍GeoPandas结合matplotlib实现地图的基础可视化.GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口.GeoPandas扩展了Pandas ...
- 手把手教你采集京东销售数据并做简单的数据分析和可视化
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 身着白衣,心有锦缎. 前言 大家好 ...
- 手把手带你用Python做数据分析和可视化项目实战,能写进简历的那种!(另送15个实战案例)...
最近几年,数据分析可真是太火了. 阿里.字节等互联网巨头基于大数据打造的商业模式获得巨大成功,使得"数据思维"."数据能力"迅速成为衡量职场人能力的核心指标,专 ...
- excel做地图热力图_使用Excel 2016的PowerMap模块绘制可视化地图
本文主要介绍一下如何使用Excel绘制地图.Excel绘制地图主要使用PowerMap模块.PowerMap是微软基于Bing地图开发的一款数据可视化工具,它可以对地理和时间数据进行绘制,并生动形象的 ...
- 一位大神的Python数据分析与可视化笔记
今天给大家推荐一个优质的[关于数据分析与可视化],作者:俊欣 点击关注微信公众号 首先,简单的介绍一下作者,毕业于美国的一所排名USNEWS第60名的高等私立理工大学,所就读的是数据科学的硕士学位,本 ...
- 动态数据交换 python_如何用 Python 和 Streamlit 做交互式数据分析产品?
「本文参与少数派 2019 年度征文 + 效率有心得」 不用学前端编程,你就能用 Python 简单高效写出漂亮的交互式 Web 应用,将你的数据分析成果立即展示给团队和客户. 痛点 从我开始折腾数据 ...
- 初创公司怎么做销售数据分析_为什么您的初创企业需要数据科学来解决这一危机...
初创公司怎么做销售数据分析 The spread of coronavirus is delivering a massive blow to the global economy. The lock ...
最新文章
- Survey | 深度学习方法在生物网络中的应用
- 在eclipse中安装groovy插件详细步骤
- python函数代码的复用_Python__函数和代码复用
- golang中struct字段
- Android Camera(5)---Android Camera调用流程
- 小游戏一键跳转小程序任意页面
- 二元二次拟合 matlab函数
- 嵌入式ERPC框架正式发布了
- Java 判断字符串仅包含半角字符
- Event-emitter (理解篇)
- 【历史上的今天】8 月 23 日:万维网面世 30 周年;微信公众平台正式上线;计算机先驱诞生日
- 大学生python期末解答题_大学mooc2020年用Python玩转数据期末考试大全答案
- Android取消EditText自动默认获取焦点行为
- 网易云信-IM即时通讯 微信小程序端实现
- coodblock调试_code::blocks调试
- 清除redis的key与数据
- WAF网页应用防火墙详解(设计思路-防御恶意文件上传实例-厂商防御技术-Imperva WAF部分特色功能了解)
- WRF模式与Python 融合技术及精美绘图(包含前后处理及自动化运行)
- C#中窗体绑定键盘按钮
- 驰骋工作流集团行政流程,精美开发者表单系列部分展示,工作流,好引擎,驰骋造