python地图上动态显示数据_Python可视化笔记之folium交互地图
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交互地图相关推荐
- python在google地图上显示兴趣点_Python可视化笔记之folium交互地图
leftlet给R语言提供了很好用的交互式动态地图接口,其在Python中得API接口包名为folium(不知道包作者为何这样起名字,和leaflet已经扯不上关系了),可以满足我们平时常用的热力图. ...
- 利用Python对NBA SportUV数据进行可视化及分析
利用Python对NBA SportUV数据进行可视化及分析 SportUV是2005年,由以色列计算机科学家Gal Oz和Miky Tamir 创立的,其实,最早这两位大牛是搞导弹跟踪和高级光学识别 ...
- Python爬取天气数据及可视化分析!
来源丨Python之王 Python爬取天气数据及可视化分析 说在前面 天气预报我们每天都会关注,我们可以根据未来的天气增减衣物.安排出行,每天的气温.风速风向.相对湿度.空气质量等成为关注的焦点.本 ...
- Python爬取天气数据及可视化分析
Python爬取天气数据及可视化分析 文章目录 Python爬取天气数据及可视化分析 说在前面 1.数据获取 请求网站链接 提取有用信息 保存csv文件 2.可视化分析 当天温度变化曲线图 当天相对湿 ...
- 如何在地图上采集数据呢?视频详细讲解全过程!
如何在地图上采集数据呢?视频详细讲解全过程! 详细讲解采集地图上的数据全过程!
- python在地图上画路线_python在openstreetmap地图上绘制路线图的实现
python在openstreetmap地图上绘制路线图的实现 发布时间:2020-08-28 23:14:52 来源:脚本之家 阅读:111 作者:AAAAAAAKing 利用python进行经纬度 ...
- python绘制小提琴图数据_Python数据处理从零开始----第四章(可视化)(16)一文解决小提琴图violin plot...
原文:Python数据处理从零开始----第四章(可视化)(16)一文解决小提琴图violin plotwww.jianshu.com Python数据处理从零开始----第四章(可视化)(16)一 ...
- python在地图上增加图层_Python Matplotlib底图在地图上叠加小图
我正在地图上绘制一架飞机上的数据,我想在飞机上的最新数据点的坐标上插入一张飞机的这个75px×29px PNG图像. 据我所知,pyplot.imshow()是完成此操作的最佳方法.但是,我在第1步挂 ...
- python通过经纬度点制图_Python 给定的经纬度标注在地图上的实现方法
博主最近发现了python中一个好玩的包叫basemap,使用这个包可以绘制地图.值得说一下的是,basemap还没有pip检索,因此不能直接使用pip install basemap,来安装这个包. ...
最新文章
- Asp.net 2.0 中将网站首页生成静态页的一个比较好的方法
- 虚函数表指针,虚函数表
- PHP算法 《树形结构》 之 伸展树(1) - 基本概念
- vb excel编程实例_用过程和函数来解决VB中的计算问题
- less css用法思维导图
- lambda表达式for_each,find_if简介
- Java txt转xml中文乱码_JAVA dom4j实现String字符串转换成XML文件(解决中文乱码问题)...
- 时刻牢记“我是谁、为了谁、依靠谁” 始终践行党的群众观点和群众路线
- 发改委交通运输部印发《推进“互联网+”便捷交通 促进智能交通发展的实施方案》(全文)...
- 酒店计算机应用例子,酒店管理系统_计算机应用专业毕业论文
- 元学习—MAML模型Pytorch实现
- 数字版权保护(Digital Right Management,DRM)
- 为什么需要等待2MSL
- Linux截取不定长度字符串,Linux技巧:使用 expr 命令获取子字符串和字符串长度...
- 关于 python 的 IDE
- LeetCode509(力扣509) :斐波那契数列 C++ 多种思路与详细解析
- win10下装黑苹果双系统_电脑笔记本win10系统重装一体机W7苹果mac双系统远程维修8虚拟机...
- 搜狗广告联盟不显示广告的原因
- 源码安装mysql,详细
- 软件著作权申请流程是怎样的