作者:俊欣
来源:关于数据分析与可视化
也就在前天,南太平洋岛国汤加发生火山喷发,有专门的专家学者分析,这可能是30年来全球规模最大的一次海底火山喷发,它引发的海啸以及火山灰将对周边的大气、洋流、淡水、农业以及民众健康等都造成不同程度的影响。
今天小编就用Python当中的folium模块以及其他的可视化库来对全球的火山情况做一个分析。
和以往一样,我们先导入需要数据分析过程当中需要用到的模块并且读取数据集,本次的数据集来自由kaggle网站,主要由美国著名的史密森学会整理所得
import pandas as pd import folium.plugins as plugins import folium
df_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 folium m = 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厘米以下,短期内太平洋沿岸国际航运或受到影响,需要重点关注美豆到港情况。
而从长期来看,热带火山爆发或提高全球极端天气发生概率,从而影响农作物的生长,对整个农产品的供应造成深远的影响,而如果火山灰大面积扩散,或进一步影响全球航空业,降低运输效率,拖累全球供应链。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
数据分析在当今信息时代发挥着重要作用。单因素方差分析(One-Way ANOVA)是一种关键的统计方法,用于比较三个或更多独立样本组 ...
2025-04-25CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-25在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-24以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《刘静:10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda ...
2025-04-23大咖简介: 刘凯,CDA大咖汇特邀讲师,DAMA中国分会理事,香港金管局特聘数据管理专家,拥有丰富的行业经验。本文将从数据要素 ...
2025-04-22CDA持证人简介 刘伟,美国 NAU 大学计算机信息技术硕士, CDA数据分析师三级持证人,现任职于江苏宝应农商银行数据治理岗。 学 ...
2025-04-21持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03