探索规律: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.mfbz.cn/a/68899.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1、Spark SQL 概述

1、Spark SQL 概述 Spark SQL概念 Spark SQL is Apache Spark’s module for working with structured data. 它是spark中用于处理结构化数据的一个模块 Spark SQL历史 Hive是目前大数据领域,事实上的数据仓库标准。 Shark:shark底层使用spark的基于…

竞赛项目 深度学习的口罩佩戴检测 - opencv 卷积神经网络 机器视觉 深度学习

文章目录 0 简介1 课题背景🚩 2 口罩佩戴算法实现2.1 YOLO 模型概览2.2 YOLOv32.3 YOLO 口罩佩戴检测实现数据集 2.4 实现代码2.5 检测效果 3 口罩佩戴检测算法评价指标3.1 准确率(Accuracy)3.2 精确率(Precision)和召回率(Recall)3.3 平均精…

【立创EDA】【0】基本概念

原理图库设计 符号设计 当在元件库中没有找到需要的元件原理图符号时,需要自己手动绘制点击文件-新建-符号进行新建符号 封装库设计 原理图符号对应焊盘 绘制封装时,可以在立创商城寻找元器件对应的数据手册进行参考 PCB绘制 晶振需要包地&#xf…

ip地址修改器软件哪个好 ip地址切换器有哪些

IP地址修改器是一种常用的网络工具,用于修改计算机或网络设备的IP地址。在网络连接中,IP地址被用于标识每个设备的唯一地址,通过它来实现设备之间的通信和数据传输。然而,有时候我们需要修改IP地址以解决一些网络问题或实现特定的…

如何让你的视频在 TikTok上变得火爆?

TikTok凭借巨大的用户量和商业价值,它从来不缺优质内容。如何在众多内容中脱颖而出获得关注,这并不简单。和泛流量账号不同,商业账号的目的更加明确,也就是说,商业账号并不一定要以高流量最为唯一的追求目标&#xff0…

41.利用matlab 平衡方程用于图像(matlab程序)

1.简述 白平衡 白平衡的英文为White Balance,其基本概念是“不管在任何光源下,都能将白色物体还原为白色”,对在特定光源下拍摄时出现的偏色现象,通过加强对应的补色来进行补偿。 所谓的白平衡是通过对白色被摄物的颜色还原&…

【12】Git工具 协同工作平台使用教程 Gitee使用指南 腾讯工蜂使用指南【Gitee】【腾讯工蜂】【Git】

tips:少量的git安装和使用教程,更多讲快速使用上手Gitee和工蜂平台 一、准备工作 1、下载git Git - Downloads (git-scm.com) 找到对应操作系统,对应版本,对应的位数 下载后根据需求自己安装,然后用git --version验…

代码质量检查工具SonarQube

Devops流水线之SonarQube 文章目录 Devops流水线之SonarQube1. 软件功能介绍及用途2. 软件环境搭建与使用2.1 使用方法2.2 SonarQube相关属性说明2.3 Sonar配置文件内容说明 3. 使用环节4. 检查方法 1. 软件功能介绍及用途 SonarQube是一个用于代码质量管理的开源平台&#xf…

蓝牙运动耳机哪个好、最好的运动蓝牙耳机品牌排行

在忙碌的都市生活中,人们往往容易迷失方向。音乐是一种良药,能够使心灵平静下来,找到正确的方向。生命需要运动,而有趣的运动更能让人们自由自在,释放身心。因此,运动和音乐天然地相辅相成。当我们佩戴一款…

Redis的RDB持久化

Redis是一个键值对数据库服务器,服务器中通常包含着任意个非空数据库,而每个非空数据库中又可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及它们的键值对统称为数据库状态。 举个例子,下图展示了一…

观察者模式

观察者模式 需求1. 定义2. 组成3. 观察者模式原型图4. 实现4.1 抽象观察者4.2 抽象主题4.3 实现观察者4.4 实现主题4.5 测试 需求 实现一种天气实时更新的程序(天气推送),当气象站数据更新后,天气接口程序去获取最新天气数据&…

从零开始搭建个人博客网站(hexo框架)

1.工具及环境搭建 1)注册GitHub并且新建一个repositories 2)下载node.js以及Git 下载链接: 检验安装是否成功: 【注】:MacOS自带Git,可以直接在终端输入git --version进行检验 3)新建一个…

生信豆芽菜-箱线图使用说明

网站:http://www.sxdyc.com/visualsBoxplot 一、使用方法 1.打开网址(http://www.sxdyc.com/singleCollectionTool?href-diff),选择“箱线图”。 准备数据: 第一个文件为特征的表达文件,第一列为样本&am…

C#,数值计算——基于模拟退火的极小化问题单纯形(下山)算法的计算方法与C#源程序

1 模拟退火 模拟退火算法其实是一个类似于仿生学的算法,模仿的就是物理退火的过程。 我们炼钢的时候,如果我们急速冷凝,这时候的状态是不稳定的,原子间杂乱无章的排序,能量很高。而如果我们让钢水慢慢冷凝&#xff0c…

报错 | Spring报错详解

Spring报错详解 一、前言二、报错提示三、分层解读1.最下面一层Caused by2.上一层Caused by3.最上层Caused by 四、总结五、解决方案 一、前言 本文主要是记录在初次学习Spring时遇到报错后的解读以及解决方案 二、报错提示 三、分层解读 遇到报错的时候,我们需要…

vant van-tabs van-pull-refresh van-list 标签栏+上拉加载+下拉刷新

<template><div class"huibj"><div class"listtab"><!--顶部导航--><div class"topdh"><topnav topname"余额明细"></topnav></div><!--Tab 标签--><van-tabs v-model"…

高压放大器怎么设计(高压放大器设计方案)

高压放大器是一种用于将低电压信号转换成高电压信号的电子设备&#xff0c;广泛应用于通信、雷达、医疗设备等领域。在设计高压放大器时&#xff0c;需要考虑多种因素&#xff0c;如输入输出信号的特性、电路结构的选择、电源和负载匹配等。本文将介绍高压放大器的设计方法和注…

【论文阅读】基于深度学习的时序预测——Pyraformer

系列文章链接 论文一&#xff1a;2020 Informer&#xff1a;长时序数据预测 论文二&#xff1a;2021 Autoformer&#xff1a;长序列数据预测 论文三&#xff1a;2022 FEDformer&#xff1a;长序列数据预测 论文四&#xff1a;2022 Non-Stationary Transformers&#xff1a;非平…

统计学和机器学习之间的联系和区别

一、说明 老实说&#xff0c;我厌倦了几乎每天都在社交媒体和我的大学里听到这场辩论。通常&#xff0c;这伴随着一些模糊的陈述来解释这个问题。双方都为此感到内疚。我希望在本文结束时&#xff0c;您将对这些有些模糊的术语有更明智的立场。 二、论点 与普遍的看法相反&…

【nacos】Param ‘serviceName‘ is illegal, serviceName is blank

报错信息 解决方式 一&#xff1a;缺少依赖 SpringBoot2.4之后不会默认加载bootstrap.yaml&#xff1b;需要手动在pom中加入如下依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-boot…
最新文章