Python可视化分析全球火山分布

目录
  • 准备工作
  • 全球火山带的分布可视化
  • 全球火山带的分布可视化优化
  • 地图可视化实战
  • 在地图上打上标记

也就在前几天,南太平洋岛国汤加发生火山喷发,有专门的专家学者分析,这可能是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

以上就是Python可视化分析全球火山分布的详细内容,更多关于Python分析火山分布的资料请关注我们其它相关文章!

(0)

相关推荐

  • python数据分析之员工个人信息可视化

    一.实验目的 (1)熟练使用Counter类进行统计 (2)掌握pandas中的cut方法进行分类 (3)掌握matplotlib第三方库,能熟练使用该三方库库绘制图形 二.实验内容 采集到的数据集如下表格所示: 三.实验要求 1.按照性别进行分类,然后分别汇总男生和女生总的收入,并用直方图进行展示. 2.男生和女生各占公司总人数的比例,并用扇形图进行展示. 3.按照年龄进行分类(20-29岁,30-39岁,40-49岁),然后统计出各个年龄段有多少人,并用直方图进行展示. import pan

  • 如何用Python数据可视化来分析用户留存率

    关于"漏斗图" 漏斗图常用于用户行为的转化率分析,例如通过漏斗图来分析用户购买流程中各个环节的转化率.当然在整个分析过程当中,我们会把流程优化前后的漏斗图放在一起,进行比较分析,得出相关的结论,今天小编就用"matplotlib"."plotly"以及"pyecharts"这几个模块来为大家演示一下怎么画出好看的漏斗图首先我们先要导入需要用到的模块以及数据, import matplotlib.pyplot as plt im

  • python可视化分析的实现(matplotlib、seaborn、ggplot2)

    一.matplotlib库 1.基本绘图命令 import matplotlib.pyplot as plt plt.figure(figsize=(5,4)) #设置图形大小 plt.rcParams['axes.unicode_minus']=False #正常显示负号 plt.rcParams['font.sans-self']=['Kai Ti'] #设置字体,这里是楷体,SimHei表示黑体 #基本统计图 plt.bar(x,y);plt.pie(y,labels=x);plt.plo

  • python实现股票历史数据可视化分析案例

    投资有风险,选择需谨慎. 股票交易数据分析可直观股市走向,对于如何把握股票行情,快速解读股票交易数据有不可替代的作用! 1 数据预处理 1.1 股票历史数据csv文件读取 import pandas as pd import csv df = pd.read_csv("/home/kesci/input/maotai4154/maotai.csv") 1.2 关键数据--在csv文件中选择性提取"列" df_high_low = df[['date','high',

  • Python数据分析之绘图和可视化详解

    一.前言 matplotlib是一个用于创建出版质量图表的桌面绘图包(主要是2D方面).该项目是由John Hunter于2002年启动的,其目的是为Python构建一个MATLAB式的绘图接口.matplotlib和IPython社区进行合作,简化了从IPython shell(包括现在的Jupyter notebook)进行交互式绘图.matplotlib支持各种操作系统上许多不同的GUI后端,而且还能将图片导出为各种常见的矢量(vector)和光栅(raster)图:PDF.SVG.JPG

  • Python实现城市公交网络分析与可视化

    目录 一.数据查看和预处理 二.数据分析 一.数据查看和预处理 数据获取自高德地图API,包含了天津市公交线路和站点名称及其经纬度数据. import pandas as pd df = pd.read_excel('site_information.xlsx') df.head() 字段说明: 线路名称:公交线路的名称 上下行:0表示上行:1表示下行 站序号:公交线路上行或下行依次经过站的序号 站名称:站点名称 经度(分):站点的经度 纬度(分):站点的纬度 数据字段少,结构也比较简单,下面来

  • 基于Python实现股票数据分析的可视化

    目录 一.简介 二.代码 1.主文件 2.数据库使用文件 3.ui设计模块 4.数据处理模块 三.数据样例的展示 四.效果展示 一.简介 我们知道在购买股票的时候,可以使用历史数据来对当前的股票的走势进行预测,这就需要对股票的数据进行获取并且进行一定的分析,当然了,人们是比较喜欢图形化的界面的,因此,我们在这里采用一种可视化的方法来实现股票数据的分析. 二.代码 1.主文件 from work1 import get_data from work1 import read_data from w

  • Python可视化分析全球火山分布

    目录 准备工作 全球火山带的分布可视化 全球火山带的分布可视化优化 地图可视化实战 在地图上打上标记 也就在前几天,南太平洋岛国汤加发生火山喷发,有专门的专家学者分析,这可能是30年来全球规模最大的一次海底火山喷发,它引发的海啸以及火山灰将对周边的大气.洋流.淡水.农业以及民众健康等都造成不同程度的影响. 今天小编就用Python当中的folium模块以及其他的可视化库来对全球的火山情况做一个分析. 准备工作 和以往一样,我们先导入需要数据分析过程当中需要用到的模块并且读取数据集,本次的数据集来

  • python可视化分析绘制带趋势线的散点图和边缘直方图

    目录 一.绘制带趋势线的散点图 二.绘制边缘直方图 一.绘制带趋势线的散点图 实现功能: 在散点图上添加趋势线(线性拟合线)反映两个变量是正相关.负相关或者无相关关系. 实现代码: import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings(action='once') plt.s

  • python可视化分析绘制散点图和边界气泡图

    目录 一.绘制散点图 二.绘制边界气泡图 一.绘制散点图 实现功能: python绘制散点图,展现两个变量间的关系,当数据包含多组时,使用不同颜色和形状区分. 实现代码: import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings(action

  • 利用Python对中国500强排行榜数据进行可视化分析

    目录 一.前言 二.数据采集 1.开始爬取 获取企业列表 获取企业对应url 获取每一个企业相关数据 2.保存到Excel 三.可视化分析 1.省份分布 导入相关可视化库 统计数据 地图可视化 2.营业收入年增率 3.营业收入年减率 4.利润年增率 5.利润年减率 6.排名上升最快20家企业 7.排名下降最快20家企业 8.资产区间分布 9.市值区间分布 10.营业收入区间分布 11.利润区间分布 12.中国500强企业-排名前10营业收入.利润.资产.市值.股东权益 四.总结 一.前言 今天来

  • Python疫情数据可视化分析

    目录 前言 功能函数 读取文件 更换列名,便于查看 全球疫情趋势 筛选出中国的数据 利用groupby按照省统计确诊死亡治愈病例的总和 确诊人数排名前15的国家 这里用pyecharts库画图,绘制的玫瑰图,rosetype 中国确诊人数前十的省 区域图 热力图 全球死亡人数地理分布情况 全球疫情频率直方图 其他图 陕西确诊病例饼图 陕西省确诊病例数据分布 中国治愈病例玫瑰图 前言 本项目主要通过python的matplotlib pandas pyecharts等库对疫情数据进行可视化分析 数

  • 用Python实现网易云音乐的数据进行数据清洗和可视化分析

    目录 Python实现对网易云音乐的数据进行一个数据清洗和可视化分析 对音乐数据进行数据清洗与可视化分析 对音乐数据进行数据清洗与可视化分析 歌词文本分析 总结 Python实现对网易云音乐的数据进行一个数据清洗和可视化分析 对音乐数据进行数据清洗与可视化分析 关于数据的清洗,实际上在上一一篇文章关于抓取数据的过程中已经做了一部分,后面我又做了一下用户数据的抓取 歌曲评论: 包括后台返回的空用户信息.重复数据的去重等.除此之外,还要进行一些清洗:用户年龄错误.用户城市编码转换等. 关于数据的去重

  • Python pyecharts案例超市4年数据可视化分析

    目录 一.数据描述 1.数据概览 二.数据预处理 1.导入包和数据 2.列名重命名 3.提取数据中时间,方便后续分析绘图 三.数据可视化 1.美国各个地区销售额的分布(地图) 2.各产品类别销售额对比(柱状图) 3.不同客户类别销售额对比(饼图) 4.每月各产品销售额top10榜单 5.销售额.净利润在时间维度的变化(折线图) 6.销售额 一.数据描述 数据集中9994条数据,横跨1237天,销售额为2,297,200.8603美元,利润为286,397.0217美元,他们的库存中有1862件独

  • Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析

    目录 知识点 第三方库 开发环境: 爬虫程序 导入模块 发送请求 获取数据(网页源代码) 解析网页(re正则表达式,css选择器,xpath,bs4/六年没更新了,json) 向详情页网站发送请求(get,post) 解析网页 保存数据 数据可视化 导入模块 导入数据 旅游胜地Top10及对应费用 出游方式分析 出游时间分析 出游玩法分析 知识点 requests 发送网络请求 parsel 解析数据 csv 保存数据 第三方库 requests >>> pip install requ

随机推荐