探索规律:Python地图数据可视化艺术

文章目录

  • 一 基础地图使用
  • 二 国内疫情可视化图表
    • 2.1 实现步骤
    • 2.2 完整代码
    • 2.3 运行结果

一 基础地图使用

  • 使用 Pyecharts 构建地图可视化也是很简单的。Pyecharts 支持多种地图类型,包括普通地图、热力图、散点地图等。以下是一个构建简单地图的示例,以中国地图为例:
  1. 首先,确保已安装了Pyecharts 库。可以使用以下命令来安装:

    pip install pyecharts
    
  2. 然后,创建一个 Python 脚本,例如 map_example.py,并输入以下代码:

from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts# 准备地图对象
map = Map()
# 准备数据
data = [("北京市", 99),("上海市", 199),("湖南省", 299),("台湾省", 399),("广东省", 499)
]
# 添加数据
map.add("销售额", data, "china")# 设置全局选项
map.set_global_opts(visualmap_opts=VisualMapOpts(is_show=True,is_piecewise=True,pieces=[{"min": 1, "max": 9, "label": "1-9", "color": "#CCFFFF"},{"min": 10, "max": 99, "label": "10-99", "color": "#FF6666"},{"min": 100, "max": 500, "label": "100-500", "color": "#990033"}])
)# 绘图
map.render("销售额.html")
  • 使用Pyecharts 的 Map 类来创建地图可视化。通过 add 方法,添加销售额数据,并指定了地图类型为 “china”。然后,通过 set_global_opts 方法设置了图表的标题和视觉映射选项,以控制颜色映射。

  • 运行脚本后,将会生成一个名为 销售额.html 的 HTML 文件,其中包含了一个简单的中国地图。
    在这里插入图片描述

二 国内疫情可视化图表

2.1 实现步骤

  1. 查看数据文件分析json结构,可使用在线json工具进行分析
    在这里插入图片描述
  2. 根据json文件结构获取省份(name)和确诊人数(confirm)数据,并组成列表
import json# 读取数据文件
f = open("D:/疫情.txt", "r", encoding="UTF-8")
data = f.read()     # 全部数据
# 关闭文件
f.close()
# 取到各省数据
# 将字符串json转换为python的字典
data_dict = json.loads(data)        # 基础数据字典
# 从字典中取出省份的数据
province_data_list = data_dict["areaTree"][0]["children"]
# 组装每个省份和确诊人数为元组,并各个省的数据都封装入列表内
data_list = []      # 绘图需要用的数据列表
for province_data in province_data_list:province_name = province_data["name"]                   # 省份名称province_confirm = province_data["total"]["confirm"]    # 确诊人数data_list.append((province_name, province_confirm))
  1. 省份的缩写映射到全称处理
# 字典映射省份缩写到全称
province_mapping = {'台湾': '台湾省','江苏': '江苏省','云南': '云南省','河南': '河南省','上海': '上海市','湖南': '湖南省','湖北': '湖北省','广东': '广东省','香港': '香港特别行政区','福建': '福建省','浙江': '浙江省','山东': '山东省','四川': '四川省','天津': '天津市','北京': '北京市','陕西': '陕西省','广西': '广西壮族自治区','辽宁': '辽宁省','重庆': '重庆市','澳门': '澳门特别行政区','甘肃': '甘肃省','山西': '山西省','海南': '海南省','内蒙古': '内蒙古自治区','吉林': '吉林省','黑龙江': '黑龙江省','宁夏': '宁夏回族自治区','青海': '青海省','江西': '江西省','贵州': '贵州省','西藏': '西藏自治区','安徽': '安徽省','河北': '河北省','新疆': '新疆维吾尔自治区',
}# 处理地区名,替换为全称
processed_data=[(province_mapping.get(area, area), value) for area, value in data_list]
print(processed_data)
[('台湾省', 15880), ('江苏省', 1576), ('云南省', 982), ('河南省', 1518), ('上海市', 2408), ('湖南省', 1181), ('湖北省', 68286), 
('广东省', 2978), ('香港特别行政区', 12039), ('福建省', 773), ('浙江省', 1417), ('山东省', 923), ('四川省', 1179), ('天津市', 445),('北京市', 1107), ('陕西省', 668), ('广西壮族自治区', 289), ('辽宁省', 441), ('重庆市', 603), ('澳门特别行政区', 63), ('甘肃省', 199), ('山西省', 255), ('海南省', 190), ('内蒙古自治区', 410), ('吉林省', 574), ('黑龙江省', 1613), ('宁夏回族自治区', 77),('青海省', 18), ('江西省', 937), ('贵州省', 147), ('西藏自治区', 1), ('安徽省', 1008), ('河北省', 1317), ('新疆维吾尔自治区', 980)]
  1. 创建地图,设置颜色分段映射
from pyecharts.charts import Map
from pyecharts.options import *# 创建地图对象
map = Map()
# 添加数据
map.add("各省份确诊人数", processed_data, "china")
# 设置全局配置,定制分段的视觉映射
map.set_global_opts(title_opts=TitleOpts(title="全国疫情地图"),visualmap_opts=VisualMapOpts(is_show=True,           # 是否显示is_piecewise=True,      # 是否分段pieces=[{"min": 1, "max": 99, "label": "1~99人", "color": "#CCFFFF"},{"min": 100, "max": 999, "label": "100~9999人", "color": "#FFFF99"},{"min": 1000, "max": 4999, "label": "1000~4999人", "color": "#FF9966"},{"min": 5000, "max": 9999, "label": "5000~99999人", "color": "#FF6666"},{"min": 10000, "max": 99999, "label": "10000~99999人", "color": "#CC3333"},{"min": 100000, "label": "100000+", "color": "#990033"},])
)
# 绘图
map.render("全国疫情地图.html")

2.2 完整代码

import json
from pyecharts.charts import Map
from pyecharts.options import *# 字典映射省份缩写到全称
province_mapping = {'台湾': '台湾省','江苏': '江苏省','云南': '云南省','河南': '河南省','上海': '上海市','湖南': '湖南省','湖北': '湖北省','广东': '广东省','香港': '香港特别行政区','福建': '福建省','浙江': '浙江省','山东': '山东省','四川': '四川省','天津': '天津市','北京': '北京市','陕西': '陕西省','广西': '广西壮族自治区','辽宁': '辽宁省','重庆': '重庆市','澳门': '澳门特别行政区','甘肃': '甘肃省','山西': '山西省','海南': '海南省','内蒙古': '内蒙古自治区','吉林': '吉林省','黑龙江': '黑龙江省','宁夏': '宁夏回族自治区','青海': '青海省','江西': '江西省','贵州': '贵州省','西藏': '西藏自治区','安徽': '安徽省','河北': '河北省','新疆': '新疆维吾尔自治区',
}# 读取数据文件
f = open("C:/疫情.txt", "r", encoding="UTF-8")
data = f.read()     # 全部数据
# 关闭文件
f.close()
# 取到各省数据
# 将字符串json转换为python的字典
data_dict = json.loads(data)        # 基础数据字典
# 从字典中取出省份的数据
province_data_list = data_dict["areaTree"][0]["children"]
# 组装每个省份和确诊人数为元组,并各个省的数据都封装入列表内
data_list = []      # 绘图需要用的数据列表
for province_data in province_data_list:province_name = province_data["name"]                   # 省份名称province_confirm = province_data["total"]["confirm"]    # 确诊人数data_list.append((province_name, province_confirm))# 处理地区名,替换为全称
processed_data=[(province_mapping.get(area, area), value) for area, value in data_list]
print(processed_data)# 创建地图对象
map = Map()
# 添加数据
map.add("各省份确诊人数", processed_data, "china")
# 设置全局配置,定制分段的视觉映射
map.set_global_opts(title_opts=TitleOpts(title="全国疫情地图"),visualmap_opts=VisualMapOpts(is_show=True,           # 是否显示is_piecewise=True,      # 是否分段pieces=[{"min": 1, "max": 99, "label": "1~99人", "color": "#CCFFFF"},{"min": 100, "max": 999, "label": "100~9999人", "color": "#FFFF99"},{"min": 1000, "max": 4999, "label": "1000~4999人", "color": "#FF9966"},{"min": 5000, "max": 9999, "label": "5000~99999人", "color": "#FF6666"},{"min": 10000, "max": 99999, "label": "10000~99999人", "color": "#CC3333"},{"min": 100000, "label": "100000+", "color": "#990033"},])
)
# 绘图
map.render("全国疫情地图.html")

2.3 运行结果

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#,数值计算——用于从连续的数据值流估计任意分位数的计算方法与源程序

1 分位数Quantile 分位数(Quantile),亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位数)、四分位数、百分位数等。 2 常见各类分位数 2.1 二分位…

【Java可执行命令】(十八)可视化监控和管理工具 jconsole:获取 JVM的内存使用情况、线程活动、GC 行为等重要指标的可视化工具 ~

Java可执行命令之jconsole 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 注意事项 4️⃣ 应用场景🌾 总结 1️⃣ 概念 jconsole 是 Java Development Kit (JDK) 自带的一款图形化监控和管理工具。它旨在提供一个简单而强大的界面,用于监视和管…

在安装 ONLYOFFICE 协作空间社区版时如何使用额外脚本参数

ONLYOFFICE 协作空间社区版是免费的文档中心工具,可帮助您将用户与文档聚合至同一处,提高协作效率。 ONLYOFFICE 协作空间主要功能 使用 ONLYOFFICE 协作空间,您可以: 邀请他人,协作和沟通完成工作创建协作房间&…

【生成式AI】ProlificDreamer论文阅读

ProlificDreamer 论文阅读 Project指路:https://ml.cs.tsinghua.edu.cn/prolificdreamer/ 论文简介:截止2023/8/10,text-to-3D的baseline SOTA,提出了VSD优化方法 前置芝士:text-to-3D任务简介 text-to-3D Problem text-to-3D…

【解密算法:时间与空间的博弈】

本章重点 ​​什么是数据结构? 什么是算法? 算法效率 时间复杂度 空间复杂度 常见时间复杂度以及复杂度oj练习 1. 什么是数据结构? 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系…

AI抢饭碗!多部由Midjourney+Runway,制作的电影火了!丨IDCF

ChatGPT等生成式AI正在重塑各个行业的工作模式,尤其是影视领域。最近,多部由MidjourneyRunway生成式AI制作的电影预告片在社交平台上火了。 一部名叫的《芭本海默》的电影从对白、场景、人物、切镜完全由生成式AI制作完成并受到了用户的好评。该片结合了…

年轻代频繁GC ParNew导致http变慢

背景介绍 某日下午大约四点多,接到合作方消息,线上环境,我这边维护的某http服务突然大量超时(对方超时时间设置为300ms),我迅速到鹰眼平台开启采样,发现该服务平均QPS到了120左右,平…

ROS入门-第 1 章 ROS概述与环境搭建

目录 第 1 章 ROS概述与环境搭建 1.1 ROS简介 1.1.1 ROS概念 1.1.2 ROS设计目标 1.1.3 ROS发展历程 1.3 ROS快速体验 1.3.1 HelloWorld实现简介 1.3.2 HelloWorld(C版) 步骤 1:创建工作空间 步骤 2:创建发布者节点 步骤…

Linux系统USB转串口芯片 GPIO使用教程

一、简介 WCH的多款USB转单路/多路异步串口芯片,除串口接口以外,还提供独立的GPIO接口,各GPIO引脚支持独立的输出输入,GPIO功能的使用需要与计算机端厂商驱动程序和应用软件配合使用。各芯片的默认GPIO引脚状态有所区别&#xff…

ESP-IDF插件去除红色波浪线

如图,新装的ESP-IDF打开别人的工程有好多红色波浪线。 把这里的第一个文件夹删除,就是那个.vscode,接下来按ctrlshiftP,输入vscode, 选第一个,添加配置文件夹。 问题解决。 之后记得重新配置板子信息和串…

STM32 低功耗-停止模式

STM32 停止模式 文章目录 STM32 停止模式第1章 低功耗模式简介第2章 停止模式简介2.1 进入停止模式2.1 退出停止模式 第3章 停止模式程序部分总结 第1章 低功耗模式简介 在 STM32 的正常工作中,具有四种工作模式:运行、睡眠、停止以及待机模式。 在系统…

linux自启动程序

嵌入式linux下有软件需要自启动,只需要在/etc/init.d/rcS末尾添加所要启动的程序即可,开机就会自动运行 vi /etc/init.d/rcS在文件末尾添加 例: