用 Python 可视化分析全球火山分布,发现了这些有趣的现象
作者 | 俊欣
来源 | 关于数据分析与可视化
近日,南太平洋岛国汤加发生火山喷发,有专门的专家学者分析,这可能是30年来全球规模最大的一次海底火山喷发,它引发的海啸以及火山灰将对周边的大气、洋流、淡水、农业以及民众健康等都造成不同程度的影响。
今天小编就用Python
当中的folium
模块以及其他的可视化库来对全球的火山情况做一个分析。
准备工作
和以往一样,我们先导入需要数据分析过程当中需要用到的模块并且读取数据集,本次的数据集来自由kaggle
网站,主要由美国著名的史密森学会整理所得
import pandas as pd
import folium.plugins as plugins
import foliumdf_volcano = pd.read_csv("volcano.csv")
df_volcano.head()
output
数据集包含了这些个数据
df_volcano.columns
output
Index(['volcano_number', 'volcano_name', 'primary_volcano_type','last_eruption_year', 'country', 'region', 'subregion', 'latitude','longitude', 'elevation', 'tectonic_settings', 'evidence_category','major_rock_1', 'major_rock_2', 'major_rock_3', 'major_rock_4','major_rock_5', 'minor_rock_1', 'minor_rock_2', 'minor_rock_3','minor_rock_4', 'minor_rock_5', 'population_within_5_km','population_within_10_km', 'population_within_30_km','population_within_100_km'],dtype='object')
全球火山带的分布可视化
我们通过调用folium
模块来绘制一下全球各个火山的分布,代码如下
volcano_map = folium.Map()# 将每一行火山的数据添加进来
for i in range(0, df_volcano.shape[0]):volcano = df_volcano.iloc[i]folium.Marker([volcano['latitude'], volcano['longitude']], popup=volcano['volcano_name']).add_to(volcano_map)volcano_map
output
上述代码的逻辑大致来看就是先实例化一个Map()
对象,然后遍历每一行的数据,主要针对的是数据集当中的经纬度数据,并且在地图上打上标签,我们点击每一个标签都会自动弹出对应的火山的名称
当然出来的可视化结果不怎么美观,我们先通过简单的直方图来看一下全球火山的分布情况,代码如下
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 4))volcano_country = pd.DataFrame(df_volcano.groupby(['country']).size()).sort_values(0, ascending=True)
volcano_country.columns = ['Count']
volcano_country.tail(10).plot(kind='barh', legend=False, ax=ax1)
ax1.set_title('Number of Volcanoes per Country')
ax1.set_ylabel('Country')
ax1.set_xlabel('Count')volcano_region = pd.DataFrame(df_volcano.groupby(['region']).size()).sort_values(0, ascending=True)
volcano_region.columns = ['Count']
volcano_region.tail(10).plot(kind='barh', legend=False, ax=ax2)
ax2.set_title('Number of Volcanoes per Region')
ax2.set_ylabel('Region')
ax2.set_xlabel('Count')plt.tight_layout()
plt.show()
output
可以看到火山主要集中在美国、印度尼西亚以及日本较多,而单从地域来看,南美以及日本、中国台湾和印度尼西亚等地存在着较多的火山
全球火山带的分布可视化优化
接下来我们来优化一下之前绘制的全球火山分布的地图,调用folium
模块当中CircleMarker
方法,并且设定好标记的颜色与大小
volcano_map = folium.Map(zoom_start=10)
groups = folium.FeatureGroup('')# 将每一行火山的数据添加进来
for i in range(0, df_volcano.shape[0]):volcano = df_volcano.iloc[i]groups.add_child(folium.CircleMarker([volcano['latitude'], volcano['longitude']],popup=volcano['volcano_name'], radius=3, color='blue',fill=True, fill_color='blue',fill_opacity=0.8))volcano_map.add_child(groups)
volcano_map.add_child(folium.LatLngPopup())
output
地图可视化实战
然后我们来看一下这次火山的爆发地点,汤加共和国位于西南太平洋,属于大洋洲,具体位置是在西经175°和南纬20°左右,
import folium.plugins as plugins
import foliumm = folium.Map([-21.178986, -175.198242],zoom_start=10,control_scale=True, width='80%')m
output
第一个参数非常明显代表的是经纬度,而zoom_start
参数代表的是缩放的程度,要是我们需要进一步放大绘制的图表,可以通过调整这个参数来实现,而width
参数代表的则是最后图表绘制出来的宽度。
在地图上打上标记
我们也可以在绘制出来的地图上面打上标记,例如画个圆圈,代码如下
m = folium.Map([-21.178986, -175.198242],zoom_start=12,control_scale=True, width='80%')
folium.Circle(location = [-21.177986, -175.199242], radius = 1500,color = "purple").add_to(m)
m
output
或者给圈出来的区域标上颜色,代码如下
m = folium.Map([-21.178986, -175.198242],zoom_start=12,control_scale=True, width='80%')
folium.Circle(location = [-21.177986, -175.199242], radius = 1500,color = "purple", fill = True, fill_color = "red").add_to(m)
m
output
深远影响
本次汤加火山爆发的VEI强度为5-6级,属于本世纪以来最强等级,后面连带引发的海啸影响了太平洋沿岸地区。太平洋沿岸的智利、日本等国的潮位站监测到30厘米至150厘米的海啸波,我国潮位站最大海啸波幅在20厘米以下,短期内太平洋沿岸国际航运或受到影响,需要重点关注美豆到港情况。
而从长期来看,热带火山爆发或提高全球极端天气发生概率,从而影响农作物的生长,对整个农产品的供应造成深远的影响,而如果火山灰大面积扩散,或进一步影响全球航空业,降低运输效率,拖累全球供应链。
往
期
回
顾
技术
盘一盘程序员们喜欢的数据网站
资讯
算力超越iPhone,芯片堪比Mac
技术
31个好用的Python字符串方法
资讯
游戏圈地震级消息,微软收购动视暴雪
分享
点收藏
点点赞
点在看
用 Python 可视化分析全球火山分布,发现了这些有趣的现象相关推荐
- 用Python可视化分析全球火山分布,发现了这些有趣的现象
南太平洋岛国汤加发生火山喷发,有专门的专家学者分析,这可能是30年来全球规模最大的一次海底火山喷发,它引发的海啸以及火山灰将对周边的大气.洋流.淡水.农业以及民众健康等都造成不同程度的影响. 今天小编 ...
- [转载] python可视化分析(matplotlib、seaborn、ggplot2)
参考链接: Python Matplotlib数据可视化2 python可视化分析总结(matplotlib.seaborn.ggplot) 一.matplotlib库1.基本绘图命令3.图形参数设置 ...
- python可视化分析(matplotlib、seaborn、ggplot2)
python可视化分析总结(matplotlib.seaborn.ggplot) 一.matplotlib库 1.基本绘图命令 3.图形参数设置 4.特殊统计图的绘制 4.1 数学函数图 4.2 气泡 ...
- Python可视化分析和预测大型流行病和COVID19如何影响金融市场
通过过去流行病的信息,并定量分析对金融市场的影响. 使用Python可视化并分析数据 我们正处于一个不确定的环境中,这也反映在金融市场上. 您会遇到很多问题,例如COVID19将如何影响金融市场,股市 ...
- 用Python可视化分析绝地求生上万场游戏数据,教你做最强吃鸡攻略啦~
导语 大吉大利,今晚吃鸡~ 今天跟朋友玩了几把吃鸡,经历了各种死法,还被嘲笑说论女生吃鸡的100种死法,比如被拳头抡死.跳伞落到房顶边缘摔死 .把吃鸡玩成飞车被车技秀死.被队友用燃烧瓶烧死的.这种游戏 ...
- 13分钟,教你python可视化分析20W数据,找到妹子最爱的内衣
最近正值"618活动",阿里.拼多多.京东等都在发力,商品的价格也下降了不少.我打开某宝首页,顿时想对某些商品的评论进行一次爬取分析. 一提到爬取,我们肯定先想到python,那可 ...
- python可视化分析网易云音乐评论_Python数据可视化:网易云音乐歌单
通过Python对网易云音乐华语歌单数据的获取,对华语歌单数据进行可视化分析. 可视化库不采用pyecharts,来点新东西. 使用matplotlib可视化库,利用这个底层库来进行可视化展示. 推荐 ...
- c罗python可视化分析_关于C罗“冲刺速度”这种隐私问题,我们在Kaggle上找到了数据集,然后。。。...
原标题:关于C罗"冲刺速度"这种隐私问题,我们在Kaggle上找到了数据集,然后... 今日份知识你摄入了么? 你知道 FIFA 么?在线踢足球那种,贼老多人玩儿这个游戏,本仙女作 ...
- c罗python可视化分析_梅西、内马尔谁是全能的五边形战士?教你用BI做出可视化能力图...
#数据分析# 最近因为欧洲疫情的原因,好多足球比赛都不得不停止,相信很多球迷现在在家中都没办法看比赛了. 而同样作为球迷的我突发奇想,如果用数据分析的角度去看欧洲的世界级球员,是否每个都名副其实呢? ...
- python粉色_13分钟,教你python可视化分析20W数据,找到妹子最爱的内衣
最近正值"618活动",阿里.拼多多.京东等都在发力,商品的价格也下降了不少.我打开某宝首页,顿时想对某些商品的评论进行一次爬取分析. 一提到爬取,我们肯定先想到python,那可 ...
最新文章
- 批量更改Windows操作系统文件名
- QingStor分布式存储全线升级:自研需要勇气,成功还要看实力
- Qt之线程同步(生产者消费者模式 - QSemaphore)
- MySQL自增主键删除后重复问题
- React antD-Pro 添加函数防抖
- HTML如何引入外部JS文件
- 【HTML5】页面传递参数给下一个页面
- 关于快速幂与快速积取模实现的尝试
- iot会议纪要 20180105
- html怎么清除背景颜色,怎么去除Word复制网页内容的背景色?
- 兔子、狼、狐狸、王八
- Java 来判断手机号码是否已经存在例子
- 测试工程师应具备的素质
- ProjectEuler Problem1.Multiples of 3 and 5
- 管理需因人而异,因时而变
- 软件技术专业就业方向分析
- python中plt.legend_matplotlib中plt.legend等的使用方法
- 微信小程序调用地图设置起点终点导航
- Oracle 导出数据库(不积跬步,无以至千里)
- python实现UDP