Python Folium 绘制交互式地图
https://github.com/WangZhangyu/Interactive_map
Folium
folium是python非常好用的交互式地图工具包,今天我们用folium来绘制简单精美的地震分布热力图。
我们选择川滇部分地区,蓝色方框圈定的区域进行绘制。橙色圆圈代表的是AETA 观测台站,黑色圆圈代表的是地震(ML3.5以上),黑色圆圈越大,震级越大。绘制地震分布的热力图,我们可以非常清晰的看到地震的集中分布情况。
绘制结果以.html的格式保存,我们可以对地图随意的放大缩小,当鼠标停留在黑色圆圈(地震)上时,地图会显示地震的发震时间和震级信息;当鼠标停留在橙色圆圈(台站)上时,会显示对应的台站名称。
- 安装Folium 库
pip install folium
- 导入必要的库
import folium
import pandas as pd
import webbrowser
from folium.plugins import HeatMap
- 加载AETA台站的信息并显示
cdata = pd.read_csv('StationInfo.csv')
for lat, lon,label in zip(cdata.Latitude, cdata.Longitude, cdata.Title):incidents.add_child(folium.CircleMarker([lat, lon],radius=7, color='yellow',fill=True,fill_color='red',fill_opacity=0.4,tooltip=label))
- 加载并绘制地震目录信息
eq = pd.read_csv('eqlst.csv')
for lat, lon, mag, time in zip(eq.Latitude, eq.Longitude, eq.Magnitude,eq.Time):incidents.add_child([图片上传中...(catalog.jpg-6f9441-1618157345666-0)]folium.CircleMarker([lat, lon],radius=(mag-3)*4, color='black',fill=True,fill_color='black',fill_opacity=0.5,weight = 0.001,stroke = False,tooltip= '%s ML %.f' % (time,mag)))
- 绘制地震分布热力图
heatdata = eq[['Latitude','Longitude','Magnitude']].values.tolist()
HeatMap(heatdata).add_to(incidents)
- 完整代码
"""
Created on Sun Apr 11 20:40:32 2021@author: Zhangyu Wang
"""
import folium
import pandas as pd
import webbrowser
from folium.plugins import HeatMap# Chuandain latitude and longitude
latitude = 28
longitude = 102.5# instantiate a feature group for the incidents in the dataframe
incidents = folium.map.FeatureGroup()# read stations
cdata = pd.read_csv('StationInfo.csv')
for lat, lon,label in zip(cdata.Latitude, cdata.Longitude, cdata.Title):incidents.add_child(folium.CircleMarker([lat, lon],radius=7, color='yellow',fill=True,fill_color='red',fill_opacity=0.4,tooltip=label))# read catalog
eq = pd.read_csv('eqlst.csv')
for lat, lon, mag, time in zip(eq.Latitude, eq.Longitude, eq.Magnitude,eq.Time):incidents.add_child(folium.CircleMarker([lat, lon],radius=(mag-3)*4, color='black',fill=True,fill_color='black',fill_opacity=0.5,weight = 0.001,stroke = False,tooltip= '%s ML %.f' % (time,mag)))# catalog heatmap
heatdata = eq[['Latitude','Longitude','Magnitude']].values.tolist()
HeatMap(heatdata).add_to(incidents)# add a single earthquake
incidents.add_child(folium.Marker([28.9, 103.3],icon=folium.Icon(color='red'), tooltip='M = 4.0'))# add area border
ls = folium.PolyLine(locations=[[22,98],[22,107],[34,107],[34,98],[22,98]],color='blue')
ls.add_to(incidents)# add incidents to map
my_map = folium.Map(location=[latitude, longitude], zoom_start=6)
my_map.add_child(incidents)# add latitude and longitude in the map when click
my_map.add_child(folium.LatLngPopup())# save map
my_map.save('Chuandian_aeta.html')
webbrowser.open('Chuandian_aeta.html')
Python Folium 绘制交互式地图相关推荐
- python/folium绘制中国人口数量热力图(HeatMap)
之前写过一篇博客,使用basemap实现的, Basemap绘制中国地图 今天发现另一个软件库folium可以实现对openstreetmap的调用,参考链接http://blog.csdn.net/ ...
- Python数据可视化 - 使用Python dash搭建交互式地图可视化看板
1.前言 前几年刚接触Dash库的时候,Dash生态还不太成熟,做些简单的web还行,复杂的.系统性还是得用flask或django来实现.随着这两年dash的不断迭代更新,以及dash大佬feffe ...
- python folium绘制地图
这里写自定义目录标题 各级别地图 世界地图 国家地图 市级地图 地图形式 普通标记 圆形标记 点击获取经纬度 动态放置标记 热力图标记 密度图绘制 folium 相比较于国内百度的 pyecharts ...
- Python 绘图大全之使用 Python Folium 制作生成热图的详细指南
介绍 在本文中,我们将学习一个非常有用的 Python 库Folium,并尝试使用该库构建不同的热图. 什么是Folium Folium 是一个非常易于使用且功能强大的 Python 库,可帮助您创建 ...
- Basemap绘制中国地图
2022.06.02更新 CHN_adm_shp.zip 网盘下载链接: 链接:https://pan.baidu.com/s/11igf-bfDLuolI5HzEykzMw 提取码:oas6 201 ...
- 介绍如何用 Python 来绘制高清的交互式地图,建议收藏
作者 |俊欣 来源 |关于数据分析与可视化 今天小编来为大家介绍一个叫做Folium的模块,我们可以用它来绘制高清的交互式地图,并且标注出重要的地理位置等等,读者在看过本篇文章之后,读者大致会掌握 1 ...
- python用folium绘制地图并设置弹窗
python–Folium 官方说明:folium.link. map用于生成地图,主要用到黄色的参数 Map(location=None, width='100%', height='100%', ...
- python画树叶-手把手|如何用Python绘制JS地图?
原标题:手把手|如何用Python绘制JS地图? 关于转载授授权 大数据文摘作品,欢迎个人转发朋友圈,自媒体.媒体.机构转载务必申请授权,后台留言"机构名称+文章标题+转载",申请 ...
- Python地理地图可视化:folium把百度地图中国城市中心经纬度解析出来并在地图上展示(三)
python地理地图可视化:folium把百度地图各个城市经纬度解析出来并在地图上展示(三) 上一篇(https://zhangphil.blog.csdn.net/article/details/1 ...
最新文章
- DataGrid中添加背景
- 人工智能时代背景下,NLP方向或将悄悄崛起
- 使用行动列表去创造简单且可扩展的游戏AI
- 64 modol1模型
- jquery指定节点设css,jquery 获取和设置节点属性 css样式
- Codevs 1043 方格取数
- 智能行业热点速览(2019.7.15)
- Java lambda list转换map时,把多个参数拼接作为key
- 移植 Qt4.8.5到Tiny210
- python程序化设计正则表达式语法_基于python的正则表达式学习笔记
- 【C语言】整人小程序
- 南京大学计算机考研复试名单,南大的考研复试名单能查出来吗?
- linux集群服务器搭建
- 教育学大佬是怎么找外文参考文献的?
- 热点drcom 破解
- 安卓Web Service实现天气预报功能
- HCIP课程笔记-04-HDLC、PPP、GRE
- html 各浏览器兼容性
- 【PC】电子书阅读软件推荐
- Java什么是面向对象和面向对象特性