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 绘制交互式地图相关推荐

  1. python/folium绘制中国人口数量热力图(HeatMap)

    之前写过一篇博客,使用basemap实现的, Basemap绘制中国地图 今天发现另一个软件库folium可以实现对openstreetmap的调用,参考链接http://blog.csdn.net/ ...

  2. Python数据可视化 - 使用Python dash搭建交互式地图可视化看板

    1.前言 前几年刚接触Dash库的时候,Dash生态还不太成熟,做些简单的web还行,复杂的.系统性还是得用flask或django来实现.随着这两年dash的不断迭代更新,以及dash大佬feffe ...

  3. python folium绘制地图

    这里写自定义目录标题 各级别地图 世界地图 国家地图 市级地图 地图形式 普通标记 圆形标记 点击获取经纬度 动态放置标记 热力图标记 密度图绘制 folium 相比较于国内百度的 pyecharts ...

  4. Python 绘图大全之使用 Python Folium 制作生成热图的详细指南

    介绍 在本文中,我们将学习一个非常有用的 Python 库Folium,并尝试使用该库构建不同的热图. 什么是Folium Folium 是一个非常易于使用且功能强大的 Python 库,可帮助您创建 ...

  5. Basemap绘制中国地图

    2022.06.02更新 CHN_adm_shp.zip 网盘下载链接: 链接:https://pan.baidu.com/s/11igf-bfDLuolI5HzEykzMw 提取码:oas6 201 ...

  6. 介绍如何用 Python 来绘制高清的交互式地图,建议收藏

    作者 |俊欣 来源 |关于数据分析与可视化 今天小编来为大家介绍一个叫做Folium的模块,我们可以用它来绘制高清的交互式地图,并且标注出重要的地理位置等等,读者在看过本篇文章之后,读者大致会掌握 1 ...

  7. python用folium绘制地图并设置弹窗

    python–Folium 官方说明:folium.link. map用于生成地图,主要用到黄色的参数 Map(location=None, width='100%', height='100%', ...

  8. python画树叶-手把手|如何用Python绘制JS地图?

    原标题:手把手|如何用Python绘制JS地图? 关于转载授授权 大数据文摘作品,欢迎个人转发朋友圈,自媒体.媒体.机构转载务必申请授权,后台留言"机构名称+文章标题+转载",申请 ...

  9. Python地理地图可视化:folium把百度地图中国城市中心经纬度解析出来并在地图上展示(三)

    python地理地图可视化:folium把百度地图各个城市经纬度解析出来并在地图上展示(三) 上一篇(https://zhangphil.blog.csdn.net/article/details/1 ...

最新文章

  1. DataGrid中添加背景
  2. 人工智能时代背景下,NLP方向或将悄悄崛起
  3. 使用行动列表去创造简单且可扩展的游戏AI
  4. 64 modol1模型
  5. jquery指定节点设css,jquery 获取和设置节点属性 css样式
  6. Codevs 1043 方格取数
  7. 智能行业热点速览(2019.7.15)
  8. Java lambda list转换map时,把多个参数拼接作为key
  9. 移植 Qt4.8.5到Tiny210
  10. python程序化设计正则表达式语法_基于python的正则表达式学习笔记
  11. 【C语言】整人小程序
  12. 南京大学计算机考研复试名单,南大的考研复试名单能查出来吗?
  13. linux集群服务器搭建
  14. 教育学大佬是怎么找外文参考文献的?
  15. 热点drcom 破解
  16. 安卓Web Service实现天气预报功能
  17. HCIP课程笔记-04-HDLC、PPP、GRE
  18. html 各浏览器兼容性
  19. 【PC】电子书阅读软件推荐
  20. Java什么是面向对象和面向对象特性

热门文章

  1. .NET实践:构建iPhone程序虚机开发环境
  2. 开关电源-下拉电阻有什么作用
  3. Pandas统计分析基础(6):基于groupby的数据分组和分组后的数据可视化数据聚合方法(agg/apply/transform方法)
  4. Struts2.x 学习笔记 之 国际化
  5. 政务区块链电子证照应用场景
  6. 计算机主机耗电量,主编教您电脑耗电量如何计算
  7. EC2实例和新I2实例介绍
  8. OTTBox开机广告
  9. 平均无故障时间100万小时_平均无故障时间100万小时
  10. 写文章搭建框架、排版、画图和配色竟有这么多讲究!