作者 | 俊欣

来源 | 关于数据分析与可视化

近日,南太平洋岛国汤加发生火山喷发,有专门的专家学者分析,这可能是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 可视化分析全球火山分布,发现了这些有趣的现象相关推荐

  1. 用Python可视化分析全球火山分布,发现了这些有趣的现象

    南太平洋岛国汤加发生火山喷发,有专门的专家学者分析,这可能是30年来全球规模最大的一次海底火山喷发,它引发的海啸以及火山灰将对周边的大气.洋流.淡水.农业以及民众健康等都造成不同程度的影响. 今天小编 ...

  2. [转载] python可视化分析(matplotlib、seaborn、ggplot2)

    参考链接: Python Matplotlib数据可视化2 python可视化分析总结(matplotlib.seaborn.ggplot) 一.matplotlib库1.基本绘图命令3.图形参数设置 ...

  3. python可视化分析(matplotlib、seaborn、ggplot2)

    python可视化分析总结(matplotlib.seaborn.ggplot) 一.matplotlib库 1.基本绘图命令 3.图形参数设置 4.特殊统计图的绘制 4.1 数学函数图 4.2 气泡 ...

  4. Python可视化分析和预测大型流行病和COVID19如何影响金融市场

    通过过去流行病的信息,并定量分析对金融市场的影响. 使用Python可视化并分析数据 我们正处于一个不确定的环境中,这也反映在金融市场上. 您会遇到很多问题,例如COVID19将如何影响金融市场,股市 ...

  5. 用Python可视化分析绝地求生上万场游戏数据,教你做最强吃鸡攻略啦~

    导语 大吉大利,今晚吃鸡~ 今天跟朋友玩了几把吃鸡,经历了各种死法,还被嘲笑说论女生吃鸡的100种死法,比如被拳头抡死.跳伞落到房顶边缘摔死 .把吃鸡玩成飞车被车技秀死.被队友用燃烧瓶烧死的.这种游戏 ...

  6. 13分钟,教你python可视化分析20W数据,找到妹子最爱的内衣

    最近正值"618活动",阿里.拼多多.京东等都在发力,商品的价格也下降了不少.我打开某宝首页,顿时想对某些商品的评论进行一次爬取分析. 一提到爬取,我们肯定先想到python,那可 ...

  7. python可视化分析网易云音乐评论_Python数据可视化:网易云音乐歌单

    通过Python对网易云音乐华语歌单数据的获取,对华语歌单数据进行可视化分析. 可视化库不采用pyecharts,来点新东西. 使用matplotlib可视化库,利用这个底层库来进行可视化展示. 推荐 ...

  8. c罗python可视化分析_关于C罗“冲刺速度”这种隐私问题,我们在Kaggle上找到了数据集,然后。。。...

    原标题:关于C罗"冲刺速度"这种隐私问题,我们在Kaggle上找到了数据集,然后... 今日份知识你摄入了么? 你知道 FIFA 么?在线踢足球那种,贼老多人玩儿这个游戏,本仙女作 ...

  9. c罗python可视化分析_梅西、内马尔谁是全能的五边形战士?教你用BI做出可视化能力图...

    #数据分析# 最近因为欧洲疫情的原因,好多足球比赛都不得不停止,相信很多球迷现在在家中都没办法看比赛了. 而同样作为球迷的我突发奇想,如果用数据分析的角度去看欧洲的世界级球员,是否每个都名副其实呢? ...

  10. python粉色_13分钟,教你python可视化分析20W数据,找到妹子最爱的内衣

    最近正值"618活动",阿里.拼多多.京东等都在发力,商品的价格也下降了不少.我打开某宝首页,顿时想对某些商品的评论进行一次爬取分析. 一提到爬取,我们肯定先想到python,那可 ...

最新文章

  1. 批量更改Windows操作系统文件名
  2. QingStor分布式存储全线升级:自研需要勇气,成功还要看实力
  3. Qt之线程同步(生产者消费者模式 - QSemaphore)
  4. MySQL自增主键删除后重复问题
  5. React antD-Pro 添加函数防抖
  6. HTML如何引入外部JS文件
  7. 【HTML5】页面传递参数给下一个页面
  8. 关于快速幂与快速积取模实现的尝试
  9. iot会议纪要 20180105
  10. html怎么清除背景颜色,怎么去除Word复制网页内容的背景色?
  11. 兔子、狼、狐狸、王八
  12. Java 来判断手机号码是否已经存在例子
  13. 测试工程师应具备的素质
  14. ProjectEuler Problem1.Multiples of 3 and 5
  15. 管理需因人而异,因时而变
  16. 软件技术专业就业方向分析
  17. python中plt.legend_matplotlib中plt.legend等的使用方法
  18. 微信小程序调用地图设置起点终点导航
  19. Oracle 导出数据库(不积跬步,无以至千里)
  20. python实现UDP

热门文章

  1. 数据库比对升级脚本生成工具分享
  2. 关于空间计量模型中自回归系数大于1的解释
  3. Servlet原理:
  4. C语言实数除法怎样保留小数(编程技巧)
  5. Nginx源码编译安装
  6. 树莓派十周年,回顾它的发展历程
  7. ubuntu硬盘序列号怎么查询_如何在Linux中查找硬盘的详细信息?
  8. 硬盘整数分区计算方法(精确硬盘分区算法)
  9. armv6、armv7、armv7s及arm64
  10. 城市供水调度平台(Axure高保真原型)