当前位置: 首页 > news >正文

Python之数据可视化(地图)


 


目录

一   基础地图应用

二   全国疫情图

一  数据准备

二 数据处理 

二   湖北省疫情图

一  数据准备

二  数据处理 


一   基础地图应用

导入map地图对象

from pyecharts.charts import Map
map = Map()

写入数据

data = [("北京市",100),("上海市",152),("广东省",102),("河南省",153),("湖北省",199),("台湾省",123)
]

添加数据

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"}])
)

颜色表格:RGB颜色对照表-RGB颜色查询对照表-颜色代码表-颜色的英文名称大全-懒人工具|www.ab173.com

绘制地图

 map.render()

运行效果

 

二   全国疫情图

一  数据准备

这里已经提前准备好了(JSON数据),如果有需要的可以私我(或者到黑马中找资料):黑马程序员-解锁你的IT职业薪未来! (itheima.com)

二 数据处理 

首先对JSON数据进行可视化 

 JSON在线视图查看器(Online JSON Viewer) (ab173.com)

我们要得到各个省份的名称,就要分析数据中省份所处在的层次,如图所示:
 

# 将JSON数据转换为Python字典
data_dict = json.loads(data)
# 从字典中取出省份
province_data_list = data_dict['areaTree'][0]['children'].

同理我们也可以获得确诊人数

province_confirm = province_data['total']['confirm']  # 省份确诊人数

获得省份名称

 

获得确诊人数 

对特殊省份的名字处理

 因为我们JSON的数据给的时候只给了身份简称,导致地图识别省份时无法匹配,因此我们要自己处理。

for province_data in province_data_list:if province_data['name'] =="北京" or province_data['name'] =="上海" or province_data['name'] =="重庆":province_name = province_data['name']+"市"elif province_data['name'] == "广西":province_name = province_data['name'] + "壮族自治区"elif province_data['name'] == "内蒙古" or province_data['name'] == "西藏":province_name = province_data['name'] + "自治区"elif province_data['name'] == "新疆":province_name = province_data['name'] + "维吾尔自治区"elif province_data['name'] == "宁夏":province_name = province_data['name'] + "回族自治区"elif province_data['name'] == "香港" or province_data['name'] == "澳门":province_name = province_data['name'] + "特别行政区"else:province_name = province_data['name']+"省"  # 省份名称province_confirm = province_data['total']['confirm']  # 省份确诊人数data_list.append((province_name,province_confirm))  # 将数据添加到列表中

 

全部代码

import json
from pyecharts.charts import Map
from pyecharts.options import *
# 读取文件数据
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:if province_data['name'] =="北京" or province_data['name'] =="上海" or province_data['name'] =="重庆":province_name = province_data['name']+"市"elif province_data['name'] == "广西":province_name = province_data['name'] + "壮族自治区"elif province_data['name'] == "内蒙古" or province_data['name'] == "西藏":province_name = province_data['name'] + "自治区"elif province_data['name'] == "新疆":province_name = province_data['name'] + "维吾尔自治区"elif province_data['name'] == "宁夏":province_name = province_data['name'] + "回族自治区"elif province_data['name'] == "香港" or province_data['name'] == "澳门":province_name = province_data['name'] + "特别行政区"else:province_name = province_data['name']+"省"  # 省份名称province_confirm = province_data['total']['confirm']  # 省份确诊人数data_list.append((province_name,province_confirm))  # 将数据添加到列表中# 创建地图对象
map = Map()
# 为地图添加数据
map.add("各省份确诊人数",data_list,"china")
# 设置全局配置
map.set_global_opts(title_opts=TitleOpts(title="全国疫情地图"),visualmap_opts=VisualMapOpts(  # 添加视觉映射is_show=True,              # 是否显示is_piecewise=True,         # 是否分段pieces=[{"min":1,"max":99, "lable": '1~99人', "color": "#CCFFFF"},{"min":100,"max":999,"lable":"100~999人","color": "#FFFF99"},{"min":1000,"max":4999,"lable":"1000~4999人","color": "#FF9966"},{"min":5000,"max":9999,"lable":"5000~99999人","color": "#FF6666"},{"min":10000,"max":99999,"lable":"10000~99999人","color":  "#CC3333"},{"min":100000,"lable":"100000+","color":"#990033"}])
)
# 绘图
map.render("全国疫情地图.html")

运行效果

二   湖北省疫情图

一  数据准备

前面我们准备的数据中包含了各个省份的信息我们取出来使用即可。

 

二  数据处理 

 对文件进行处理

将JSON数据转换为Python字典

 

 将数据变为元组存放再列表中

构建地图配置全局选项 

 

全部代码 

import json
from pyecharts.charts import Map
from pyecharts.options import *
# 打开文件
f = open("D:/疫情.txt","r",encoding="UTF-8")
# 读取文件中的数据
data = f.read()
# 关闭文件
f.close()
# 将JSON数据转换为Python字典
data_dict = json.loads(data)
# 取到湖北省的数据
city_data = data_dict['areaTree'][0]['children'][6]['children']# 准备数据为元组存放到list中
data_list = []
for citydata in city_data:if citydata["name"] == "神农架":city_name = citydata["name"] + "林区"elif citydata["name"] == "恩施州":city_name = citydata["name"][:-1]+ "土家族苗族自治州"else:city_name = citydata["name"] + "市"city_confirms = citydata['total']['confirm']data_list.append((city_name,city_confirms))# 构建地图
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, "lable": '1~99人', "color": "#CCFFFF"},{"min":100,"max":999,"lable":"100~999人","color": "#FFFF99"},{"min":1000,"max":4999,"lable":"1000~4999人","color": "#FF9966"},{"min":5000,"max":9999,"lable":"5000~99999人","color": "#FF6666"},{"min":10000,"max":99999,"lable":"10000~99999人","color":  "#CC3333"},{"min":100000,"lable":"100000+","color":"#990033"}])
)
# 绘制地图
map.render("湖北省疫情地图.html")

 运行效果

相关文章:

Python之数据可视化(地图)

目录 一 基础地图应用 二 全国疫情图 一 数据准备 二 数据处理 二 湖北省疫情图 一 数据准备 二 数据处理 一 基础地图应用 导入map地图对象 from pyecharts.charts import Map map Map() 写入数据 data [("北京市",100),("上海市"…...

etcd技术解析:构建高可用分布式系统的利器

1. 引言 随着云原生技术的兴起,分布式系统的构建变得愈发重要。etcd作为一个高可用的分布式键值存储系统,在这个领域发挥着至关重要的作用。本文将深入探讨etcd的技术细节,以及如何利用它构建高可用的分布式系统。 2. etcd简介 etcd是一个开…...

Pillow图像处理:从零开始的奇妙之旅

图像处理,就像是一场神奇的冒险,让我们的照片变得更有趣、更生动。而在这个冒险的旅途中,Pillow就如同一位魔法师,为我们开启了无尽的可能性。无论你是刚刚踏入图像处理领域的小白,还是已经略有基础的程序员&#xff0…...

设计一个LRU(最近最少使用)缓存

约束和假设 我们正在缓存什么? 我们正在缓存Web Query的结果我们可以假设输入是有效的,还是需要对其验证? 假设输入是有效的我们可以假设它适应内存吗? 对 编码实现 class Node(object):def __init__(self, results):self.res…...

shell 循环语句

一、命令补充 1. echo 命令 echo -n 表示不换行输出 echo -e 表示输出转义符 常用的转义符有: 选项作用\r光标移至行首,并且不换行\s当前shell的名称,如bash\t插入Tab键,制表符\n输出换行\f换行,但光标仍停留在…...

C++(1) 命名空间

文章目录 C1. C 概述2.C 相对于 C 语言的增强2.1C 第一行代码2.2 C 补充 bool 类型2.3 作用域运算符2.4 命名空间 namespace2.4.1 命名空间基本内容和开放性2.4.2 多个命名空间操作2.4.3 命名空间函数定义和实现分离2.4.4 匿名命名空间2.4.5 命名空间别名 C 1. C 概述 C 之父…...

【机组】单元模块实验的综合调试与驻机键盘和液晶显示器的使用方式

​🌈个人主页:Sarapines Programmer🔥 系列专栏:《机组 | 模块单元实验》⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 目录 1. 综合实验的调试 1.1 实验…...

React中实现虚拟加载滚动

前言:当一个页面中需要接受接口返回的全部数据进行页面渲染时间,如果数据量比较庞大,前端在渲染dom的过程中需要花费时间,造成页面经常出现卡顿现象。 需求:通过虚拟加载,优化页面渲染速度 缺点&#xff1a…...

vue中的Mutations

目录 一:介绍 二:例子 一:介绍 Vuex 中的 mutation 非常类似于事件: 每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。这个回调函数就是我们实际进行状态更改的函数,并且它会接受 sta…...

C#用 DateAndTime.DateAdd方法和DateTime.Add(TimeSpan) 方法分别添加一段时间间隔

目录 一、基本方法 1.用 DateAndTime.DateAdd方法添加一段时间间隔 2.用DateTime.Add方法添加一段时间间隔 二、实例 1.实例1:用 DateAndTime.DateAdd方法 2.实例2:用DateTime.Add方法 一、基本方法 1.用 DateAndTime.DateAdd方法添加一段时间间隔…...

四、Kotlin 表达式

1. 常量 & 变量 1.1 可读写变量(var) var x initValue // x 称为可读写变量注意:当 var 声明的变量做成员属性时,默认提供 setter/getter 方法。 1.2 只读变量(val) val x initValue // x 称为只…...

Web开发4:单元测试

在Web开发中,单元测试是一种重要的开发实践,它可以帮助我们确保代码的质量和可靠性。通过编写和运行单元测试,我们可以验证代码的正确性,减少错误和缺陷,并提高代码的可维护性。本文将介绍单元测试的概念、好处以及如何…...

Ubuntu 16 让ufw防火墙控制docker容器中所有端口

使用docker ps 查询docker在运行端口。 rootai-0003:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS …...

<蓝桥杯软件赛>零基础备赛20周--第18周--动态规划初步

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周。 在QQ群上交流答疑&am…...

vb如何获取鼠标形状的特征码

vb如何获取鼠标形状的特征码 好像按键精灵有一个GetCursorShape()函数可以获取特征码,不知道VB6能不能实现类似的功能? 附注: 1 最好是机器无关的,不是也可以。 2 特征码就是一串数字,用来区分不同的鼠标形状。 3 获取…...

chroot: failed to run command ‘/bin/bash’: No such file or directory

1. 问题描述及原因分析 在busybox的环境下,执行 cd rootfs chroot .报错如下: chroot: failed to run command ‘/bin/bash’: No such file or directory根据报错应该rootfs文件系统中缺少/bin/bash,进入查看确实默认是sh,换成…...

蓝桥杯备战——2.矩阵键盘

1.分析原理图 由上图可以看到若J5跳线帽接地,就S4~S7就可以当做四路独立按键,若接到P44,则就是4*4的矩阵键盘。 2.独立按键处理 相对传统的按键延时消抖方案,这里我采用更高效,更经典,更偏向产品级应用的…...

Docker部署思维导图工具SimpleMindMap并实现公网远程访问

文章目录 1. Docker一键部署思维导图2. 本地访问测试3. Linux安装Cpolar4. 配置公网地址5. 远程访问思维导图6. 固定Cpolar公网地址7. 固定地址访问 SimpleMindMap 是一个可私有部署的web思维导图工具。它提供了丰富的功能和特性,包含插件化架构、多种结构类型&…...

机器学习实验2——线性回归求解加州房价问题

文章目录 🧡🧡实验内容🧡🧡🧡🧡数据预处理🧡🧡代码缺失值处理特征探索相关性分析文本数据标签编码数值型数据标准化划分数据集 🧡🧡线性回归🧡&am…...

宝塔+nextcloud+docker+Onlyoffice 全开启https

折腾了我三天的经验分享 1.宝塔创建网站 nextcloud版本为28.0.1 php8.2 ,导入nextcloud绑定域名对应的证书 ,不用创建mysql 因为nextcloud 要求是mariadb:10.7 宝塔里没有,就用docker安装一个 端口设置为3307 将数据库文件映射出来/ww…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...