综合案例-数据可视化-地图

news2024/11/13 12:09:17

一、pyecharts—地图快速入门

假设我们要将6个地区的某种数量在地图上标注出来,首先导入pyecharts包内地图相关模块,然后准备地图数据(数据类型是列表,列表的元素类型为元组),然后把准备好的数据添加进地图。补充细节,设置全局选项,不同的数量段用不同颜色标注出来,使效果更加直观。最后,生成地图。

代码示例:

#导包
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts
#构建地图
map=Map()
#准备地图数据
data=[           #数据类型:元素类型为元组的列表
    ('北京市',99),
    ('上海市',199),
    ('湖南省',299),
    ('山东省',199),
    ('安徽省',499),
    ('河南省',366),
    ('湖北省',599)
]
#添加地图数据
map.add('地图',data,'china') #不输入地图类型'China'也默认是'China'
#设置全局选项
map.set_global_opts(
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True, #手动校准范围
        pieces=[           #范围定义是一个列表
            {'min': 1, 'max': 9, 'label': '1-9人', 'color': '#CCFFFF'},  #'color': '#CCFFFF'颜色值,详见RGB颜色对照表
            {'min': 10, 'max': 99, 'label': '10-99人', 'color': '#FFFF99'},
            {'min': 100, 'max': 299, 'label': '100-299人', 'color': '#6699FF'},
            {'min': 300, 'max':499, 'label': '300-499人', 'color': '#F38F24'},
            {'min': 500, 'max': 599, 'label': '500-599人', 'color': '#CC3333'},
            {'min': 600,  'label': '600人以上', 'color': '#990033'},
        ]
    )
)
#生成地图
map.render()

运行代码后会产生新文件render.html,用Edge浏览器打开,即可看到生成的地图。

关于Map_visualmap_piecewise的详细说明,可访问官网:

DocumentDescriptionicon-default.png?t=O83Ahttps://gallery.pyecharts.org/#/Map/map_visualmap_piecewise在设置全局选项时,用到了颜色值,颜色值是6位,什么值对应什么颜色,可通过RGB颜色对照表一一对应。

可访问如下网站进行了解RGB颜色对照表:RGB颜色对照表-RGB颜色查询对照表-颜色代码表-颜色的英文名称大全-懒人工具|www.ab173.com懒人站长工具提供RGB颜色对照表,RGB颜色查询对照表、常见的网页颜色代码表,常见颜色的英文名称颜色表查询!icon-default.png?t=O83Ahttp://www.ab173.com/gongju/ui/rgb.php

二、进阶-全国疫情地图

2.1分析文件数据

文件“ 疫情.txt ”记录了全国各个地区的疫情数据(确诊人数,治愈人数等等),文件链接:
链接:https://pan.baidu.com/s/1Q9az5lIKuWbMTIxzXRtX_A?pwd=1yts 
提取码:1yts

文件“ 疫情.txt ”是标准的json格式,我们通过网站(如下所示)可以更直观地看出数据层级。在线JSON校验格式化工具(Be JSON)在线,JSON,JSON 校验,格式化,xml转json 工具,在线工具,json视图,可视化,程序,服务器,域名注册,正则表达式,测试,在线json格式化工具,json 格式化,json格式化工具,json字符串格式化,json 在线查看器,json在线,json 在线验证,json tools online,在线文字对比工具icon-default.png?t=O83Ahttps://www.bejson.com/

使用步骤如图:

数据层级如下:

数据层级图

通过在线网站工具,点击“+",一级一级展开,体验展开过程,也许会更容易理解。

简单分析完数据层级后,我们决定要做一个反映各个省份疫情确诊人数的地图,则地图类型默认中国,地图数据类型为列表,列表内元素类型为元组,一个元组就包括:一个省份名称+确诊人数。

2.2处理数据

我们要处理一下文件“ 疫情.txt ”中的数据,数据本身就是标准的json格式,不再需要处理开头与结尾,步骤如下:

  1. 首先,我们要读取数据文件。
  2. 然后将json数据转换为python字典。
  3. 然后从字典中取出children列表内的数据(即包括省份名称+确诊人数的数据)。
  4. 最后利用for循环组装每个省份名称+确诊人数为元组,将所有元组封装在列表内。

代码如下所示:

#准备地图数据
#读取数据文件
f=open('E:/可视化案例数据/地图数据/疫情.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)) #放入列表中

第三步:从字典中取出children列表内的数据(即包括省份名称+确诊人数的数据),我们需要先访问字典data_dict中的列表'areaTree',然后访问列表'areaTree'中第一个元素,其类型为字典,然后访问此字典内的列表'children',结合数据层级图,更容易理解。

第四步:利用for循环组装每个省份名称+确诊人数为元组,将所有元组封装在列表内,在获取省份名称的时候,我在后面拼接了字符串'省',因为现在pyecharts包要求,地区后面添加上相应后缀:省,市,行政区,最后生成的地图才会显示数据,而我们现在用的这份文件没有相应后缀,所以我拼接了字符串'省',至于市和行政区,我没有再去添加,最后生成的地图也没有市和行政区的数据,还望读者见谅。还有一个需要注意的问题:append函数的参数只有1个,我们在此处追加的是元组类型的元素,追加了一个元组,元组内是省份名称+确诊人数2个参数,不要忽略元组的括号。

回顾append函数:http://t.csdnimg.cn/kKNQE 3.3.2在列表尾部添加指定元素。回顾元组知识:http://t.csdnimg.cn/XIMOe 。

2.3构建地图

构建地图的步骤如下所示:

  1. 首先构建地图对象map
  2. 添加上一步处理好的数据
  3. 设置全局配置选项(标题,地区颜色)
  4. 生成地图

代码如下:

#构建地图
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'},  #'color': '#CCFFFF'颜色值,详见RGB颜色对照表
            {'min': 100, 'max': 999, 'label': '100-999人', 'color': '#FFFF99'},
            {'min': 1000, 'max': 4999, 'label': '1000-4999人', 'color': '#6699FF'},
            {'min': 5000, 'max':9999, 'label': '5000-9999人', 'color': '#F38F24'},
            {'min': 10000, 'max': 99999, 'label': '10000-99999人', 'color': '#CC3333'},
            {'min': 100000,  'label': '10万人以上', 'color': '#990033'},
        ]
    )
)
#生成地图
map.render('全国疫情地图.html')  #控制生成的文件名

运行代码后会产生新文件 “ 全国疫情地图.html ” ,用Edge浏览器打开,即可看到生成的地图。

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

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

相关文章

Java笔试面试题AI答之单元测试JUnit(1)

文章目录 1. 什么是JUnit?2. JUnit的重要特征是什么?3. 什么是单元测试案例?单元测试的特点:单元测试的好处:编写单元测试案例的步骤: 4. 何时在开发周期中编写单元测试?5. 为什么不直接使用Sys…

【鸿蒙开发从0到1 day07】

ArkTS-基础语法 一.开发环境1.下载Dev Eco Stdio2.下载chinese插件3.基础入门4.输出语句5.注释 二.3种常见的数据类型1.数据类型2.储存数据(1)变量:专门用来存储数据的容器(可变)(2)常量(3)命名规则 三.数组四.函数1.无参函数2.有参函数3.返回值4.箭头函数 五.对象六.总结 一.开…

HBuilderx中vue页面引用scss样式

scss为css样式的预编译器,引入了变量、嵌入、混合、集成、引入等功能,相对于css样式,实现了样式的编程,具有更灵活的样式编写模式。 那么在HBuilderx中,“.vue”格式页面如何调用scss样式呢?详细如下&#…

每日一练7:简写单词(含链接)

1.链接 简写单词_牛客题霸_牛客网 2.题目 3.代码1&#xff08;错误经验&#xff09; #include <iostream> #include <string> using namespace std;int main() {string s;string ret;int count 0;while(cin >> s)for(auto a : s){if(count 0){if( a <…

字符串操作的高效工具—正则表达式

字符串操作的高效工具—正则表达式 一 . 概述1.1 认识正则表达式1.2 正则表达式体验案例 二 . 使用2.1 字符类2.2 逻辑运算符2.3 预定义字符2.4 数量词2.5 分组括号2.6 字符串中常用含有正则表达式的方法 正则表达式&#xff08;Regular Expression&#xff0c;简称 regex 或 r…

xcode打包报错之 zip fail / copy fail

在xcode中archive打包中&#xff0c;遇到提示zip fail或者copy fail&#xff0c;此时请清理你电脑的缓存文件了&#xff0c;但凡遇到这两种报错&#xff0c;是编译时运行内存不够导致的&#xff0c;请及时查看并清理你的电脑。 如下&#xff1a; 将对应的缓存或者垃圾清理&am…

春日美食汇:基于SpringBoot的订餐平台

2 系统关键技术 2.1JSP技术 JSP(Java脚本页面)是Sun和许多参与建立的公司所提倡的动态web技术。将Java程序添加到传统的web页面HTML文件()。htm,。Html) [1]。 JSP这种能够独立使用的编程语言可以嵌入在html语言里面运行&#xff0c;正因为JSP参照了许多编程语言的特性&#xf…

C++——类与对象(二)

目录 引言 类的默认成员函数 构造函数 1.构造函数的概念 2.注意事项 初始化列表 1.初始化列表的概念 2.注意事项 析构函数 1.析构函数的概念 2.注意事项 拷贝构造函数 1.拷贝构造函数的概念 2.注意事项 运算符重载 1.运算符重载的概念 2.注意事项 赋值运算符…

食家巷桃酥:一口酥脆,回味悠长

在众多的传统糕点中&#xff0c;食家巷桃酥以其独特的魅力脱颖而出&#xff0c;成为了许多人心中的美味记忆。初见食家巷桃酥&#xff0c;那金黄的色泽便让人食欲大增。每一块桃酥都像是一件小小的艺术品&#xff0c;散发着诱人的香气。它的外形饱满&#xff0c;边缘微微隆起&a…

JVM 调优篇1 类的加载器与加载过程

一 基本知识 1.1 JIT&AOT JIT: Just Time compilation 即时编译器 在程序运行时将字节码或中间表示转换为机器代码。 AOT: Ahead of Tmie Compilation &#xff1a; 预编译 在程序运行之前将高级语言代码完全编译成机器代码。 1.2 字面量和符号引用* 字面量&am…

安卓下载工具箱_3.8.1/去浏览器跳转登录就是会员

下载工具箱app是一款支持56种下载协议的安卓万能下载工具,下载工具箱最新版主要提供网络视频解析下载,资源嗅探下载,以及本地视频扫描提取功能,同时提供不常见的视频编辑功能,例如:智能清洗,高帧率/码率等 链接: https://pan.baidu.com/s/1pW0CgmGv9bmzGkBA4rV2oQ?pwdxdby …

群晖NAS安装alist

官方文档&#xff1a;https://alist.nn.ci/zh NAS参考&#xff1a;https://post.smzdm.com/p/an9zpvev/ Windows安装&#xff1a;alist-windows-amd64.zip 手机参考&#xff1a;https://studylessshape.github.io/post/note/alist-install-for-android/ 质感文件可以不用安&…

Science|癌症中三级淋巴结构的免疫调节作用与治疗潜力|顶刊精析·24-09-08

小罗碎碎念 Science文献精析 今天精析的这一篇综述&#xff0c;于2022-01-07发表于Science&#xff0c;主要讨论了癌症中的三级淋巴结构&#xff08;Tertiary Lymphoid Structures, TLS&#xff09;及其在肿瘤免疫反应中的作用。 作者类型作者姓名单位名称&#xff08;中文&…

前端学习笔记-Web APls篇-04

Dom节点&移动端滑动 1.日期对象 日期对象:用来表示时间的对象作用:可以得到当前系统时间 1.1实例化 在代码中发现了 new 关键字时&#xff0c;一般将这个操作称为实例化 创建一个时间对象并获取时间 获得当前时间 获得指定时间 1.2时间对象方法 使用场景&#xff1a…

图的广度优先搜索(BFS)算法与邻接矩阵表示

图的广度优先搜索(BFS)算法与邻接矩阵表示 1. 图的表示2. 广度优先搜索(BFS)BFS 算法步骤:3. 使用邻接矩阵的 BFS 实现4. 运行时间分析时间复杂度:空间复杂度:5. BFS 使用邻接列表与邻接矩阵的比较BFS 在邻接列表上的运行时间:6. 结论在计算机科学中,图是一种重要的数…

Mybatis-设计模式总结

1、Builder模式 Builder模式的定义是“将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。”&#xff0c;它属于创建类模式&#xff0c;一般来说&#xff0c;如果一个对象的构建比较复杂&#xff0c;超出了构造函数所能包含的范围&#x…

Spring05——注解开发定义bean、Spring纯注解开发模式

19-注解开发定义bean Spring的IOC/DI对应的配置开发前面的内容已经讲解完成&#xff0c;但是使用起来相对来说还是比较复杂的&#xff0c;复杂的地方在配置文件。 Spring到底是如何简化代码开发的呢? 要想真正简化开发&#xff0c;就需要用到Spring的注解开发&#xff0c;Spr…

CTFHub技能树-信息泄露-SVN泄漏

目录 Git与SVN的区别 漏洞产生的原因 漏洞危害 修复建议 工具下载 解题过程 当开发人员使用 SVN 进行版本控制&#xff0c;对站点自动部署。如果配置不当,可能会将.svn文件夹直接部署到线上环境。这就引起了 SVN 泄露漏洞。 Git与SVN的区别 Git 是分布式版本控制系统&a…

vulhub命令执行/代码执行漏洞

一、Thinkphp5 2-rce远程代码执行漏洞 1.打开靶场环境 2、访问网页 3、构造payload 172.16.1.18:8080?s/Index/index/L/${phpinfo()} 4、写入一句话木马&#xff0c;使用蚁剑连接 172.16.1.18:8080/?s/Index/index/name/${print(eval($_POST[cmd]))} 二、Couchdb 任意命令…

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理&#xff0c;在有一定基础认识的前提下&#xff0c;通过阅读kubelet源码&#xff0c;对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管…