8-数据可视化-地图可视化

news/2024/12/2 19:38:58/

文章目录

  • 1.基础地图
  • 2.国内疫情地图
  • 3.省内疫情地图

1.基础地图

(1)基础结构

from pyecharts.charts import Map
map=Map() # 准备地图对象
data=[ # 数据是由元组组成的列表("北京市",100),("台湾省",99),("上海市",98),("广东省",97)
]
map.add("名称",data,"china") # 添加数据,(名称,数据,地图类型(如中国地图))
map.render() # 生成地图

在这里插入图片描述

在这里插入图片描述
(2)全局选项-颜色
颜色查找

在这里插入图片描述
在这里插入图片描述

from pyecharts.options import VisualMapOpts
map.set_global_opts( # 全局选项visualmap_opts=VisualMapOpts( # 可视化地图的相关设置(如设置颜色)is_show=True, # 展示is_piecewise=True, # 开启手动校准范围pieces=[ # 由字典组成的列表{"min":1,"max":9,"label":"1-9人","color":"#B22222"},{"min":10,"max":19,"label":"10-19人","color":"#A52A2A"},{"min":20,"max":29,"label":"20-29人","color":"#E9967A"},{"min":30,"max":39,"label":"30-39人","color":"#FA8072"},{"min":40,"max":49,"label":"40-49人","color":"#FFA07A"},{"min":50,"max":59,"label":"50-59人","color":"#FFA500"},{"min":60,"max":69,"label":"60-69人","color":"#FF8C00"},{"min":70,"max":79,"label":"70-79人","color":"#FF7F50"},{"min":80,"max":89,"label":"80-89人","color":"#F08080"},{"min":90,"max":99,"label":"90-99人","color":"#FF6347"},])
)

在这里插入图片描述
完整代码

from pyecharts.charts import Map # 地图
from pyecharts.options import VisualMapOpts # 可视化地图的相关设置(如设置颜色)map=Map() # 准备地图对象
data=[ # 数据是由元组组成的列表("北京市",99),("台湾省",90),("上海市",80),("广东省",70)
]
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":"#B22222"},{"min":10,"max":19,"label":"10-19人","color":"#A52A2A"},{"min":20,"max":29,"label":"20-29人","color":"#E9967A"},{"min":30,"max":39,"label":"30-39人","color":"#FA8072"},{"min":40,"max":49,"label":"40-49人","color":"#FFA07A"},{"min":50,"max":59,"label":"50-59人","color":"#FFA500"},{"min":60,"max":69,"label":"60-69人","color":"#FF8C00"},{"min":70,"max":79,"label":"70-79人","color":"#FF7F50"},{"min":80,"max":89,"label":"80-89人","color":"#F08080"},{"min":90,"max":99,"label":"90-99人","color":"#FF6347"},])
)map.render() # 生成地图

2.国内疫情地图

(1)数据获取
数据下载

(2)前期准备

import json
f = open("D:/地图数据/疫情.txt","r",encoding="UTF-8")
data=f.read()
f.close()
data_dict = json.loads(data)  # json转python

在这里插入图片描述

(3)数据处理

data_province_list = data_dict["areaTree"][0]["children"]data_list=[] # 用于存储绘图需要用到的数据列表
for data_province in data_province_list:  # 遍历各个省份的数据province_name = data_province["name"]province_confirm = data_province["total"]["confirm"]data_list.append((province_name,province_confirm)) # 省份名和确诊人数组成元组存入列表,用于绘图

此时data_list ↓
在这里插入图片描述
此处需要对省份名规范处理

    if province_name=="内蒙古":province_name="内蒙古自治区"elif province_name=="广西":province_name="广西壮族自治区"elif province_name=="西藏":province_name="西藏自治区"elif province_name=="宁夏":province_name="宁夏回族自治区"elif province_name=="新疆":province_name="新疆维吾尔自治区"elif province_name=="北京" or province_name=="上海" or province_name=="天津" or province_name=="重庆":province_name=province_name+"市"elif province_name=="香港" or province_name=="澳门":province_name=province_name+"特别行政区"else:province_name = province_name + "省"

(4)图像绘制

from pyecharts.charts import Map
map=Map()
map.add("各省份确诊人数",data_list,"china")from pyecharts.options import *
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~999人","color":"#FFFF99"},{"min":1000,"max":4999,"label":"1000~4999人","color":"#FF9966"},{"min":5000,"max":9999,"label":"5000~9999人","color":"#FF6666"},{"min":10000,"max":99999,"label":"10000~99999人","color":"#CC3333"},{"min":100000,"label":"100000+","color":"#990033"}])
)
map.render("全国疫情地图.html") # 指定生成文件名,默认render.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完整代码

import json
f = open("D:/地图数据/疫情.txt","r",encoding="UTF-8")
data=f.read()
f.close()
data_dict = json.loads(data)  # json转python
data_province_list = data_dict["areaTree"][0]["children"]data_list=[] # 用于存储绘图需要用到的数据列表
for data_province in data_province_list:  # 遍历各个省份的数据province_name = data_province["name"]if province_name=="内蒙古":province_name="内蒙古自治区"elif province_name=="广西":province_name="广西壮族自治区"elif province_name=="西藏":province_name="西藏自治区"elif province_name=="宁夏":province_name="宁夏回族自治区"elif province_name=="新疆":province_name="新疆维吾尔自治区"elif province_name=="北京" or province_name=="上海" or province_name=="天津" or province_name=="重庆":province_name=province_name+"市"elif province_name=="香港" or province_name=="澳门":province_name=province_name+"特别行政区"else:province_name = province_name + "省"province_confirm = data_province["total"]["confirm"]data_list.append((province_name,province_confirm)) # 省份名和确诊人数组成元组存入列表,用于绘图from pyecharts.charts import Map
map=Map()
map.add("各省份确诊人数",data_list,"china")from pyecharts.options import *
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~999人","color":"#FFFF99"},{"min":1000,"max":4999,"label":"1000~4999人","color":"#FF9966"},{"min":5000,"max":9999,"label":"5000~9999人","color":"#FF6666"},{"min":10000,"max":99999,"label":"10000~99999人","color":"#CC3333"},{"min":100000,"label":"100000+","color":"#990033"}])
)
map.render("全国疫情地图.html") # 指定生成文件名,默认render.html

3.省内疫情地图

以河南省为例(数据与上面相同)
(1)前期准备

import json
f = open("D:/地图数据/疫情.txt","r",encoding="UTF-8")
data=f.read()
f.close()
data_dict = json.loads(data)  # json转python
henan_province_list = data_dict["areaTree"][0]["children"][3]["children"] # 更新

在这里插入图片描述
(2)数据处理

data_list=[] # 用于存储绘图需要用到的数据列表
for data_henan in henan_province_list:  # 遍历河南各市henan_name = data_henan["name"]if henan_name=="济源示范区":henan_name="济源市"else:henan_name=henan_name+"市"henan_confirm = data_henan["total"]["confirm"]data_list.append((henan_name,henan_confirm))

(3)图像绘制

from pyecharts.charts import Map
map=Map()
map.add("河南省疫情分布",data_list,"河南")from pyecharts.options import *
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~999人","color":"#FFFF99"},{"min":1000,"max":4999,"label":"1000~4999人","color":"#FF9966"},{"min":5000,"max":9999,"label":"5000~9999人","color":"#FF6666"},{"min":10000,"max":99999,"label":"10000~99999人","color":"#CC3333"},{"min":100000,"label":"100000+","color":"#990033"}])
)
map.render("河南省疫情地图.html")

在这里插入图片描述
在这里插入图片描述
完整代码

import json
from pyecharts.charts import Map
from pyecharts.options import *f = open("D:/地图数据/疫情.txt","r",encoding="UTF-8")
data=f.read()
f.close()
data_dict = json.loads(data)  # json转python
henan_province_list = data_dict["areaTree"][0]["children"][3]["children"]data_list=[] # 用于存储绘图需要用到的数据列表
for data_henan in henan_province_list:  # 遍历河南各市henan_name = data_henan["name"]if henan_name=="济源示范区":henan_name="济源市"else:henan_name=henan_name+"市"henan_confirm = data_henan["total"]["confirm"]data_list.append((henan_name,henan_confirm))map=Map()
map.add("河南省疫情分布",data_list,"河南")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~999人","color":"#FFFF99"},{"min":1000,"max":4999,"label":"1000~4999人","color":"#FF9966"},{"min":5000,"max":9999,"label":"5000~9999人","color":"#FF6666"},{"min":10000,"max":99999,"label":"10000~99999人","color":"#CC3333"},{"min":100000,"label":"100000+","color":"#990033"}])
)
map.render("河南省疫情地图.html")

http://www.ppmy.cn/news/40410.html

相关文章

SDK之动态链接库开发—基本概念

动态链接库(Dynamic Link Library,简称 DLL)是一种在运行时加载的库,可用于在多个应用程序之间共享代码和数据。与静态链接库相比,动态链接库的主要优劣势如下: 优势: 空间效率更高&#xff0…

砝码称重(第十二届蓝桥杯省赛第一场C++A/B/研究生组)

突然决定要参加蓝桥,已经超级久没复习C/C的我考前还是决定打几道题捡一捡C/C的语法和思路。 2023年蓝桥的题之后会出,因为 AcWing上还没有出可以测试的程序,也没把握说自己考场上做的就是对的。 题目 你有一架天平和 N 个砝码,…

0201服务注册源码解析-nacos2.x-微服务架构

文章目录1 搭建测试服务1.1 搭建服务1.2 启动测试2 nacos 服务注册原理2.1 客户端注册2.2 服务端注册结语1 搭建测试服务 1.1 搭建服务 我们基于springboot来搭建简单的订单和库存服务,通过订单服务调用库存服务,项目代码和配置在文章最后的仓库有,项目…

关于FTP文件传输协议说明,带你了解更详细的文件传输协议

FTP是文件传输协议的缩写。顾名思义,FTP用于在网络上的计算机之间传输文件。您可以使用文件传输协议在计算机帐户之间交换文件,在帐户和台式计算机之间传输文件或访问在线软件档案。但是请记住,许多文件传输协议站点已被大量使用,…

Android Jetpack 从使用到源码深耕【数据库注解Room 从实践到原理 】(二)

上文,我们通过一个简单的sqlite应用实例,引入了Room,知道了Room使用的便捷和好处。然后用Room的方式,重新实现了应用实例中的场景,在这个过程中,我们结合自己已有的知识体系,从使用代码入手,对Room的实现原理,进行了猜想和简单的验证。 Room实现原理,是否真如我们猜想…

Typescript - function 函数(箭头函数 / 参数类型与返回类型 / 可选参数与默认参数 / 剩余参数 / 函数重载)通俗易懂详细示例教程

前言 在 Typescript 中,对 JavaScript 函数进行了 “升级”,继承了基本功能的同时又增加了一些新用法(使其更加严谨)。 用一个表格,可以大致描绘出异同点。 TypeScriptJavaScript含有类型无类型箭头函数箭头函数&…

java程序解析jts的geometry类型并入PG数据库

场景 GIS开发,会有需要将jts包中的geometry类型数据存入pg(postgis扩展后)数据库的需求。 工程是springboot,mybatis作为持久层框架。 解决方案 1. pg的geometry字段对应的类型为geometry类型,比如: 2.…

面向对象三大基本特征

面向对象三大基本特征封装继承多态封装 把客观事物封装成抽象的一个类,并且类可以把自己的数据和方法只让可信的类或者对象来操作。 一个类就是一个封装的数据,以及操作这些数据的代码的逻辑实体。 在一个对象的内部,某些代码或者是某些数…