python-下载数据-制作全球地震散点图:JSON格式

news2024/11/17 15:27:41

查看JSON数据

import json

# 探索数据的结构
filename = 'eq_data_1_day_m1.geojson'
with open(filename) as f:
    all_eq_data = json.load(f)
    
readable_file = 'readable_eq_data.json'
with open(readable_file, 'w') as f:
    json.dump(all_eq_data, f, indent=4)

json.load() 将数据转换为Python能够处理的格式 - - 字典

json.dump() 接受一个JSON数据对象和一个文件对象,并将数据写入这个文件中
indent=4 让dump() 使用与数据结构匹配的缩进量来设置数据的格式

创建地震列表

创建一个列表,包含所有地震的各种信息

all_eq_dicts = all_eq_data['features']
len(all_eq_dicts)	# 160	# 160次地震

提取震级

magnitude震级

mags = []# 存储地震震级
for eq_dict in all_eq_dicts:
    mag = eq_dict['properties']['mag']
    mags.append(mag)
    
print(mags[:10])	# [1.6, 1.6, 2.2, 3.7, 2.92000008, 1.4, 4.6, 4.5, 1.9, 1.8]

提取位置数据

properties特征
geometry 存储位置数据

# longitude经度 latitude纬度 coordinates坐标
mags, titles, lons, lats = [], [], [], []
for eq_dict in all_eq_dicts:
    mag = eq_dict['properties']['mag']
    title = eq_dict['properties']['title']
    lon = eq_dict['geometry']['coordinates'][0]
    lat = eq_dict['geometry']['coordinates'][1]
    mags.append(mag)
    titles.append(title)
    lons.append(lon)
    lats.append(lat)

print(mags[:10])    # [1.6, 1.6, 2.2, 3.7, 2.92000008, 1.4, 4.6, 4.5, 1.9, 1.8]
print(titles[:2])   # ['M 1.6 - 27 km NNW of Susitna, Alaska', 'M 1.6 - 63 km SE of Pedro Bay, Alaska']
print(lons[:5])     # [-150.7585, -153.4716, -148.7531, -159.6267, -155.248336791992]
print(lats[:5])     # [61.7591, 59.3152, 63.1633, 54.5612, 18.7551670074463]

绘制震级散点图

import plotly.express as px

fig = px.scatter(	# 创建一个fig实例
    x=lons,
    y=lats,
    labels={"x": "经度", "y": "纬度"},
    range_x=[-200, 200],
    range_y=[-90, 90],
    width=800,
    height=800,
    title="全球地震散点图",
)
fig.write_html("global_earthquakes.html")	# 将可视化图保存为html文件
fig.show()

plotly.express别名px,是Plotly的高级接口,简单易用
在这里插入图片描述

另一种指定图表数据的方式

import pandas as pd
data = pd.DataFrame(	# 创建一个DataFrame ,将需要的数据封装起来
    data=zip(lons, lats, titles, mags), columns=["经度", "纬度", "位置", "震级"]
)
data.head()

pandas数据分析工具
在这里插入图片描述
将注释里的代码改为前面的代码

    data,        	# x=lons,
    x = "经度",     # y=lats,
    y = "纬度",     # labels={"x": "经度", "y": "纬度"},

定制标记的尺寸 和颜色

fig = px.scatter(
    data,
    x="经度",
    y="纬度",
    range_x=[-200, 200],
    range_y=[-90, 90],
    width=800,
    height=800,
    title="全球地震散点图",
    size="震级",
    size_max=10,	# 标记尺寸默认为20像素
    color="震级",
)

默认的视觉映射图例渐变色范围是从蓝到红再到黄,数值越小则标记越蓝,而数值越大则标记越黄
在这里插入图片描述

其他渐变

Plotly Express将渐变存储在模块colors 中。这些渐变是在列表px.colors.named_colorscales() 中定义的

px.colors.named_colorscales()

[‘aggrnyl’, ‘agsunset’, ‘blackbody’, ‘bluered’, ‘blues’, ‘blugrn’, ‘bluyl’, ‘brwnyl’, ‘bugn’, ‘bupu’, ‘burg’, ‘burgyl’, ‘cividis’, ‘darkmint’, ‘electric’, ‘emrld’, ‘gnbu’, ‘greens’, ‘greys’, ‘hot’, ‘inferno’, ‘jet’, ‘magenta’, ‘magma’, ‘mint’, ‘orrd’, ‘oranges’, ‘oryel’, ‘peach’, ‘pinkyl’, ‘plasma’, ‘plotly3’, ‘pubu’, ‘pubugn’, ‘purd’, ‘purp’, ‘purples’, ‘purpor’, ‘rainbow’, ‘rdbu’, ‘rdpu’, ‘redor’, ‘reds’, ‘sunset’, ‘sunsetdark’, ‘teal’, ‘tealgrn’, ‘turbo’, ‘viridis’, ‘ylgn’, ‘ylgnbu’, ‘ylorbr’, ‘ylorrd’, ‘algae’, ‘amp’, ‘deep’, ‘dense’, ‘gray’, ‘haline’, ‘ice’, ‘matter’, ‘solar’, ‘speed’, ‘tempo’, ‘thermal’, ‘turbid’, ‘armyrose’, ‘brbg’, ‘earth’, ‘fall’, ‘geyser’, ‘prgn’, ‘piyg’, ‘picnic’, ‘portland’, ‘puor’, ‘rdgy’, ‘rdylbu’, ‘rdylgn’, ‘spectral’, ‘tealrose’, ‘temps’, ‘tropic’, ‘balance’, ‘curl’, ‘delta’, ‘oxy’, ‘edge’, ‘hsv’, ‘icefire’, ‘phase’, ‘twilight’, ‘mrybm’, ‘mygbm’]

使用px.colors.diverging.RdYlGn[::-1] 可以将对应颜色的配色列表反转

注意 Plotly除了有px.colors.diverging 表示连续变量的配色方案,还有px.colors.sequential 和px.colors.qualitative 表示离散变量。随便挑一种配色,例如px.colors.qualitative.Alphabet ,你将看到渐变是如何定义的。每个渐变都有起始色和终止色,有些渐变还定义了一个或多个中间色。Plotly会在这些定义好的颜色之间插入颜色。

添加鼠标指向时显示的文本

hover_name

fig = px.scatter(
    color="震级",
    hover_name="位置",
)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/934744.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ExpressLRS开源之接收机固件编译烧录步骤

ExpressLRS开源之接收机固件编译烧录步骤 1. 源由2. 编译步骤2.1 推荐源代码指定方案2.2 方法一:ELRS Configurator步骤一:下载ELRS Configurator工具步骤二:安装ELRS Configurator工具步骤三:使用ELRS Configurator工具进行配置步…

快速启动 - 一键启动您的目标应用

《快速启动》- 快速管理,便捷控制 作为一款管理类应用,《快速启动》拥有简洁且实用的分类功能。它能将你的应用归类,让你轻松找到所需。无论是工具类、娱乐类还是社交类应用,《快速启动》都能让你的手机变得井井有条。 与普通管理…

学霸有特权

导读 同时保有两种截然相反的观念还能正常行事,这是第一流智慧的标志 -- 菲茨杰拉德 周末愉快。 1. 有一次在西湖公园门口等着接娃,凑上来一位并不面善的大汉,低声问我:兄弟你有没兴趣了解下"我主"。 我:可以…

LeetCode--HOT100题(43)

目录 题目描述:98. 验证二叉搜索树(中等)题目接口解题思路代码 PS: 题目描述:98. 验证二叉搜索树(中等) 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定…

软件测评单位需要哪些资质?

软件测评资质 在进行软件测试或其他项目检测需要选择软件测评公司时,我们常常会把该公司有无资质认证考虑进去。那么软件测评公司在为企业出软件测试报告过程中,需要有什么资质才是合法合规的? 软件测评公司需要什么资质? 国内第…

用 PHP 和 JavaScript 显示地球卫星照片

向日葵 8 号气象卫星是日本宇宙航空研究开发机构设计制造的向日葵系列卫星之一,重约 3500 公斤,设计寿命 15 年以上。该卫星于 2014 年 10 月 7 日由 H2A 火箭搭载发射成功,主要用于监测暴雨云团、台风动向以及持续喷发活动的火山等防灾领域。…

基于微信小程序中小学生练字书法家校联合系统

对于一些学生和书法爱好者来说,需要时时刻刻了解,自己及自己所喜欢的书法的相关信息,书法作业的相关事宜,学生作业的相关信息,比如查询教学进度、书法作业等这样才能更好的推动我国的书法事业发展,为此今后有必要对书法…

【硬件设计】硬件学习笔记一--元器件的介绍与选型

硬件学习笔记一--元器件的选型 一、电阻1.1 电阻的分类1.2 电阻的选型 二、电容2.1 陶瓷电容2.2 钽电容2.3 铝电解电容2.4 电容选型 三、电感3.1 定义与介绍3.2 电感的分类3.3 电感的参数 四、磁珠4.1 磁珠的介绍4.2 磁珠的参数 五、二极管5.1 定义5.2 稳压管5.3 肖特基二极管5…

心法利器[97] | 判断问题是否真的需要大模型来解决

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里&…

微服务系统面经之二: 以秒杀系统为例

16 微服务与集群部署 16.1 一个微服务一般会采用集群部署吗? 对于一个微服务是否采用集群部署,这完全取决于具体的业务需求和系统规模。如果一个微服务的访问压力较大,或者需要提供高可用性,那么采用集群部署是一种常见的策略。…

社区供稿 | FaceChain 开源项目原理解析

一、背景说明 各类 AI 写真软件由于其精准的个人形象精美的生成效果引爆了朋友圈传播,证件照满足了用户刚需,古装照等风格照满足了用户“美照”的需求。 FaceChain 是一个可以用来打造个人数字形象的深度学习模型工具。用户仅需要提供最低三张照片即可获…

十五、pikachu之CSRF

文章目录 一、CSRF概述二、CSRF实战2.1 CSRF(get)2.2 CSRF之token 一、CSRF概述 Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击&#xf…

对标 GPT-4?科大讯飞刘庆峰:华为GPU技术能力已与英伟达持平

科大讯飞创始人、董事长刘庆峰在亚布力中国企业家论坛第十九届夏季高峰会上透露了关于自家大模型进展的一些新内容。刘庆峰认为,中国在人工智能领域的算法并没有问题,但是算力方面似乎一直被英伟达所限制。 以往的“百模大战”中,训练大型模型…

mysql下载

网址 MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/ 2、选择MSI进行安装 3、这里我选择离线安装 4、这里我选择直接下载 5、等待下载安装即可

改变癌症诊断!梯度提升方法可准确预测癌症患者的生存风险!

一、引言 癌症是全球范围内一种严重的疾病,对人类健康造成了巨大的威胁。据世界卫生组织统计,癌症是全球首要死因之一,每年有数百万人因癌症而丧生 [1]。然而,早期的癌症诊断和治疗非常重要,可以显著提高患者的存活率和…

滑动窗口系列4-Leetcode322题零钱兑换-限制张数-暴力递归到动态规划再到滑动窗口

这个题目是Leecode322的变种,322原题如下: 我们这里的变化是把硬币变成可以重复的,并且只有coins数组中给出的这么多的金币,也就是说有数量限制: package dataStructure.leecode.practice;import java.util.Arrays; i…

ChatGPT癌症治疗“困难重重”,真假混讲难辨真假,准确有待提高

近年来,人工智能在医疗领域的应用逐渐增多,其中自然语言处理模型如ChatGPT在提供医疗建议和信息方面引起了广泛关注。然而,最新的研究表明,尽管ChatGPT在许多领域取得了成功,但它在癌症治疗方案上的准确性仍有待提高。…

华为OD机试 - 完全数计算(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示六、纵览全局 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷)》。 刷的越多&…

Lalamu-免费视频口型同步工具,创建属于你自己的虚拟数字人

什么是Lalamu? Lalamu 是一款视频口型同步应用程序。该应用程序由 Lalamu Entertainment 开发,允许用户对视频中的任何面孔进行口型同步。无论是人物、人体模型、书籍封面、艺术品、演员、婴儿、蜡像,甚至银行账单上的面孔,Lalamu 都可以让…

FreeSWITCH 1.10.10 简单图形化界面4 - 腾讯云NAT设置

FreeSWITCH 1.10.10 简单图形化界面4 - 腾讯云NAT设置 0、 界面预览1、 查看IP地址2、 修改协议配置3、 开放腾讯云防火墙4、 设置ACL5、 设置协议中ACL,让PBX匹配内外网6、 重新加载SIP模块7、 查看状态8、 测试一下 0、 界面预览 http://myfs.f3322.net:8020/ 用…