leftlet给R语言提供了很好用的交互式动态地图接口,其在Python中得API接口包名为folium(不知道包作者为何这样起名字,和leaflet已经扯不上关系了),可以满足我们平时常用的热力图、填充地图、路径图、散点标记等高频可视化场景。

关于folium在热力图上的用法,可以参考这一篇分享:

使用Python中的folium包创建热力密度图

本篇主要介绍其在point、line、polygon这三个地理信息场景下得应用:import pandas as pdimport numpy as npimport osimport foliumfrom folium import pluginsimport webbrowserimport geopandas as gp

Point:full = pd.read_excel("D:/Python/File/Cities2015.xlsx")

full = full.dropna()

默认情况下folium.Marker函数用于在空间范围内标记点,点得样式是雨滴形状,但是也可以使用folium.RegularPolygonMarker函数来自定义点样式:schools_map = folium.Map(location=[full['lat'].mean(), full['lon'].mean()], zoom_start=10)

marker_cluster = plugins.MarkerCluster().add_to(schools_map)for name,row in full.iterrows():

folium.Marker([row["lat"], row["lon"]], popup="{0}:{1}".format(row["cities"], row["GDP"])).add_to(marker_cluster) #folium.RegularPolygonMarker([row["lat"], row["lon"]], popup="{0}:{1}".format(row["cities"], row["GDP"]),number_of_sides=10,radius=5).add_to(marker_cluster)display(schools_map)#schools_map.save('schools_map.html')#webbrowser.open('schools_map.html')

display用于在编辑器内展示交互地图,save方法可以将交互地图以html文件得形式保存至本地磁盘,webbrowser.open方法可以调用默认浏览器打开本地html格式的交互地图。

polygon:

因为leaflet使用的在线地图并不开放地址匹配功能,也就意味着我们无法通过直接输入行政区名称来获取行政区划边界,所以在制作填充地图时,仍然需要我们构建本地素材。mydata = pd.read_csv("D:/R/rstudy/Province/geshengzhibiao.csv", encoding = 'gb18030')

china_map = gp.GeoDataFrame.from_file("D:/R/rstudy/CHN_adm/bou2_4p.shp", encoding = 'gb18030')#china_map = gp.GeoDataFrame.from_file("D:/R/mapdata/State/china.geojson", encoding = 'gb18030')China_map = folium.Map(location=[35,120], zoom_start=4)

China_map.choropleth(

geo_data=open('D:/R/mapdata/State/china.geojson',encoding = 'utf-8').read(),

data=mydata,

columns=['province', 'zhibiao'],

key_on= 'feature.properties.name',

fill_color='YlGn',

fill_opacity=0.7,

line_opacity=0.2)

display(China_map)

China_map.save("China_map.html")

好在folium的choropleth函数直接支持json格式地图,仅需提供素材地址即可,data中应该包含与json素材中的属性表和地理信息边界保持一致得映射表,columns用于指定要用到的字段名称。key_on用于指定json地图数据中和你指定得data中对应得连接键(相当于主键)。

fill_color可以指定用于配色的colorBrewer调色板。

polyline

folium中得线图制作也较为简单,仅需提供给folium.PolyLine函数一组带有嵌套列表或者元组得经纬度点即可。mydata1 =full.sample(20).loc[:,["lat","lon"]].values.tolist()

mydata2 =[(i,j) for i,j in full.sample(20).loc[:,["lat","lon"]].values.tolist()]

oneUserMap = folium.Map(location=[40.0764,116.2786],zoom_start=4)

folium.PolyLine(mydata1,color = 'black').add_to(oneUserMap)

display(oneUserMap)

oneUserMap = folium.Map(location=[40.0764,116.2786],zoom_start=4)

folium.PolyLine(mydata2,color = 'black').add_to(oneUserMap)

display(oneUserMap)

稍微增加一些循环条件就可以构造出来实用的路径图场景:def map_fun():

myresult = full.loc[:,["lat","lon","cities","pop"]].values

oneUserMap = folium.Map(location=[40.0764,116.2786],zoom_start=4) for e in myresult:

folium.RegularPolygonMarker(

[e[0],e[1]],

popup=str(e[2])+":"+str(e[3]),

fill_color='#769d96',

number_of_sides=10,

radius=10

).add_to(oneUserMap)

others = full.loc[full['cities']!='郑州市',["lat","lon"]].values.tolist() for i in range(len(others)):

zhengzhou = full.loc[full['cities']=='郑州市',["lat","lon"]].values.tolist()

zhengzhou.append(others[i])

folium.PolyLine(

locations = zhengzhou,

color = 'black'

).add_to(oneUserMap)

display(oneUserMap) return Noneif __name__ == '__main__':

map_fun()

python地图上动态显示数据_Python可视化笔记之folium交互地图相关推荐

  1. python在google地图上显示兴趣点_Python可视化笔记之folium交互地图

    leftlet给R语言提供了很好用的交互式动态地图接口,其在Python中得API接口包名为folium(不知道包作者为何这样起名字,和leaflet已经扯不上关系了),可以满足我们平时常用的热力图. ...

  2. 利用Python对NBA SportUV数据进行可视化及分析

    利用Python对NBA SportUV数据进行可视化及分析 SportUV是2005年,由以色列计算机科学家Gal Oz和Miky Tamir 创立的,其实,最早这两位大牛是搞导弹跟踪和高级光学识别 ...

  3. Python爬取天气数据及可视化分析!

    来源丨Python之王 Python爬取天气数据及可视化分析 说在前面 天气预报我们每天都会关注,我们可以根据未来的天气增减衣物.安排出行,每天的气温.风速风向.相对湿度.空气质量等成为关注的焦点.本 ...

  4. Python爬取天气数据及可视化分析

    Python爬取天气数据及可视化分析 文章目录 Python爬取天气数据及可视化分析 说在前面 1.数据获取 请求网站链接 提取有用信息 保存csv文件 2.可视化分析 当天温度变化曲线图 当天相对湿 ...

  5. 如何在地图上采集数据呢?视频详细讲解全过程!

    如何在地图上采集数据呢?视频详细讲解全过程! 详细讲解采集地图上的数据全过程!

  6. python在地图上画路线_python在openstreetmap地图上绘制路线图的实现

    python在openstreetmap地图上绘制路线图的实现 发布时间:2020-08-28 23:14:52 来源:脚本之家 阅读:111 作者:AAAAAAAKing 利用python进行经纬度 ...

  7. python绘制小提琴图数据_Python数据处理从零开始----第四章(可视化)(16)一文解决小提琴图violin plot...

    原文:Python数据处理从零开始----第四章(可视化)(16)一文解决小提琴图violin plot​www.jianshu.com Python数据处理从零开始----第四章(可视化)(16)一 ...

  8. python在地图上增加图层_Python Matplotlib底图在地图上叠加小图

    我正在地图上绘制一架飞机上的数据,我想在飞机上的最新数据点的坐标上插入一张飞机的这个75px×29px PNG图像. 据我所知,pyplot.imshow()是完成此操作的最佳方法.但是,我在第1步挂 ...

  9. python通过经纬度点制图_Python 给定的经纬度标注在地图上的实现方法

    博主最近发现了python中一个好玩的包叫basemap,使用这个包可以绘制地图.值得说一下的是,basemap还没有pip检索,因此不能直接使用pip install basemap,来安装这个包. ...

最新文章

  1. Asp.net 2.0 中将网站首页生成静态页的一个比较好的方法
  2. 虚函数表指针,虚函数表
  3. PHP算法 《树形结构》 之 伸展树(1) - 基本概念
  4. vb excel编程实例_用过程和函数来解决VB中的计算问题
  5. less css用法思维导图
  6. lambda表达式for_each,find_if简介
  7. Java txt转xml中文乱码_JAVA dom4j实现String字符串转换成XML文件(解决中文乱码问题)...
  8. 时刻牢记“我是谁、为了谁、依靠谁” 始终践行党的群众观点和群众路线
  9. 发改委交通运输部印发《推进“互联网+”便捷交通 促进智能交通发展的实施方案》(全文)...
  10. 酒店计算机应用例子,酒店管理系统_计算机应用专业毕业论文
  11. 元学习—MAML模型Pytorch实现
  12. 数字版权保护(Digital Right Management,DRM)
  13. 为什么需要等待2MSL
  14. Linux截取不定长度字符串,Linux技巧:使用 expr 命令获取子字符串和字符串长度...
  15. 关于 python 的 IDE
  16. LeetCode509(力扣509) :斐波那契数列 C++ 多种思路与详细解析
  17. win10下装黑苹果双系统_电脑笔记本win10系统重装一体机W7苹果mac双系统远程维修8虚拟机...
  18. 搜狗广告联盟不显示广告的原因
  19. 源码安装mysql,详细
  20. 软件著作权申请流程是怎样的

热门文章

  1. java掌握哪些技能就能工作,成长路线图
  2. Android AudioFlinger回顾
  3. 身份鉴别产品实现过程及原理
  4. window10下手动安装php7
  5. 【星辰傀儡线·命运环·卷二 尘埃】 6 封印
  6. YUV颜色通道存储格式
  7. java百分百获取到机器IP地址及MAC码
  8. 斐波那契数列除10007求余数
  9. 王建宙:从互联网到“物联网”
  10. 选择排名靠前的期货公司开户