Python如何实现folium交互地图
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关Python如何实现folium交互地图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。leftlet给R语言提供了很好用的交互式动
千家信息网最后更新 2026年11月01日Python如何实现folium交互地图
这期内容当中小编将会给大家带来有关Python如何实现folium交互地图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
leftlet给R语言提供了很好用的交互式动态地图接口,其在Python中得API接口包名为folium(不知道包作者为何这样起名字,和leaflet已经扯不上关系了),可以满足我们平时常用的热力图、填充地图、路径图、散点标记等高频可视化场景。
主要介绍其在point、line、polygon这三个地理信息场景下得应用:
import pandas as pd
import numpy as np
import os
import folium
from folium import plugins
import webbrowser
import geopandas as gpPoint:
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如何实现folium交互地图了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
地图
函数
场景
素材
仅需
信息
内容
名称
地址
地理
地理信息
接口
方法
样式
格式
路径
边界
郑州
郑州市
分析
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
保险科技 互联网保险
天津市摩尔互联网科技
广州为想互联网科技有限公司
互联网的科技
圆梦互联网科技
深圳科技互联网
致聘互联网科技
互联网金融科技平台
互联网科技的未来发展
美国互联网前沿科技
港股科技和互联网
崇明区互联网教育科技诚信经营
中国航天科技大学国际工业互联网
坤平互联网科技
梅州GM互联网络科技有限公司
上海互联网科技公司ppt
西安有哪些互联网高科技企业
河南商务圈互联网科技有限公司
广东猫王互联网科技有限公司电话
银川新华互联网科技学校招聘
互联网电商科技
上海卓越科技 互联网
互联网科技素材视频竖屏
千方科技属于互联网企业吗
畅思互联网科技
互联网公司黑科技创始人
工业互联网科技创业
北京天晋互联网科技有限公司
科技信息时代互联网发展
互联网时代高科技布局