原标题:Python交互地图-folium包

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

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

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

本篇主要介绍其在point、line、polygon这三个地理信息场景下得应用:

importpandas aspd

importnumpy asnp

importos

importfolium

fromfolium importplugins

importwebbrowser

importgeopandas asgpPoint: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)forname,row infull.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) fori,j infull.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)

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

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

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

fore inmyresult:

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

fori inrange(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)

returnNoneif__name__ == '__main__':

map_fun

https://edu.hellobi.com/course/264返回搜狐,查看更多

责任编辑:

python地图包_Python交互地图-folium包相关推荐

  1. python文件转换成jar包_Python一键转Jar包,Java调用Python新姿势!

    粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 今天的这篇文章,聊一个轩辕君之前工作中遇到的需求:如何在Jav ...

  2. python安装第三方包_python 怎么安装第三方包

    使用Pip工具进行第三方包安装 Pip工具是Pytho自带的第三包安装工具,在pytho安装过程中已经安装完成,无需独立安装,附上python第三方安装包地址:https://pypi.python. ...

  3. python分析数据包_Python解析pcap数据包

    Post Views: 29,789 零.前言 历时数月,终于结束了考研初试,Blog也很长时间没有更新了,期间还是有些小伙伴来Blog看文章很是感动.以后一定会坚持更新,尽量给大家推送一些干货.这次 ...

  4. python tcp处理_python中TCP粘包问题解决方案

    TCP协议中的粘包问题 1.粘包现象 基于TCP写一个远程cmd功能 #服务端 importsocketimportsubprocess sever=socket.socket() sever.bin ...

  5. python解析数据包_python – 解析UDP数据包

    我正在构建一个UDP服务器来解析和验证传入的UDP数据包.我能够接收和解析数据包,但标头值不是我所期望的. 这是传入数据包的结构 包ID(4个字节) 包序列(4个字节) XOR密钥(2个字节) 数据包 ...

  6. python地图包_Python画地图逃不过的basemap包「完全安装手册」

    01python虐我千百遍,我待python如初恋 Python需要跳过的安装的坑太太太太多了!!!!! 前段时间看<利用python进行数据分析>这本书,到可视化的部分,看着最后的例子地 ...

  7. 人生苦短我学python表情包_Python自动生成表情包

    原标题:Python自动生成表情包 源| 创业智库文| 唐一 作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态-- ...

  8. python跨包导入包_python引入跨模块包

    人生苦短,我学python. 最近学习python,由于包的模块分的比较多.所以要用到跨模块引入 且调用中间的方法 整体目录结构如下. 需求: 在 API模块 user.py 中 调用 plugin ...

  9. python制作会动的表情包_Python自动生成表情包,python在手,从此斗图无敌手

    作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符号,更是一种文化:是促 ...

最新文章

  1. FOSCommentBundle功能包:与FOSUserBundle集成
  2. C#异步编程的实现方式(1)——异步委托
  3. 去除cpp中注释的小程序
  4. java 自定义报表_灵活数据分析 | 自定义数据分析_集力数据系统平台_Java报表系统软件...
  5. [react] 如何用React实现滚动动画?
  6. 前端学习(1713):前端系列javascript之运行
  7. map型字段 mongodb_MongoDB极简教程
  8. 数组长度属性以及JavaScript中的示例
  9. 数组的操作与方法的操作 0303 2101
  10. iOS之LLDB常用调试命令
  11. 在WPF里面显示DIB图片格式的图片
  12. 恶意软件针对中国用户 试图攫取用户账户和密码
  13. mysql使用存储过程循环修改数据
  14. dell驱动安装工具_DELL R720 安装WIN2008 R2
  15. Rbf神经网络使用Tensorflow实现
  16. java程序设计概念对象先行_《Java程序设计概念:对象先行》【摘要 书评 在线阅读】-苏宁易购图书...
  17. vs2008中文版提供下载(包含中文msdn),包括vs2008序列号和破解方法。
  18. 戴文渊 李一男 李三琦
  19. 普通学渣的春招,秋招历程以及实习心路
  20. 又猎一“狐”:一名外逃越南嫌疑人落网-网易

热门文章

  1. php生成随机不重复的数字_PHP生成不重复随机数的几种方法
  2. 金古桥机器人_泽塔奥特曼上演“吃瘪预定”,金古桥强势回顾,阿尔法被骑着打脸...
  3. 计算机学院毕业典礼口号,毕业典礼口号
  4. 可变悬挂调节软硬_国六最亲民的豪车,丐版2.0T纯进口,全系可变悬架+8气囊,才23万...
  5. mysql first value_开窗函数 First_Value 和 Last_Value
  6. java解压缩.zip文件
  7. 机器学习Machine learning in action实战相关资料
  8. 存储引擎:engine
  9. Appium 解决手势密码 (java篇)
  10. Launch Image Source