Python数据可视化案例——地图

news2024/12/26 0:04:42

目录

简单案例:

进阶案例:


  继上文数据可视化案例,今天学习用pyecharts练习数据可视化案例2-构建地图。

简单案例:

  首先构建一个简单的地图。

代码: 

import json
from pyecharts.charts import Map

map=Map()
data=[
    ('北京',99),
    ('上海',199),
    ('湖南',299),
    ('台湾',399),
    ('广东',499)
]

map.add('地图',data,'china')
map.render()

效果图: 

添加全局属性:

  对我们设置了数据的省份设置不同梯度的颜色,颜色数值同样可以在“ac173.com”网站上(前端-RGB颜色对照)查看。

  注意:json数据的地图没有地区名没有完整名称最新版的pyecharts无法识别,无法上色,(下面代码对此作了修改)。

import json
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':'#564112'},
            {'min':10,'max':99,'label':'1-9','color':'#563012'},
            {'min':100,'max':500,'label':'1-9','color':'#561512'}
        ]
    )
)


map.render()

效果图: 

进阶案例:

全国疫情确诊人数地图构建

步骤:

1、打开json数据复制到ac173查看视图。

2、在pycharm中读取json数据文件

3、将json数据转化为python字典。

4、获取我们需要的数据(首先获取整体,再局部)。

5、构建地图。

6、设置全局属性(颜色梯度设置,标题设置等)。

完整代码: 

import json
from pyecharts.charts import Map
from pyecharts.options import *

# 读取文件
f=open('D:/疫情.txt','r',encoding="UTF-8")
data=f.read()
# 格式转化,转换为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']
    special_province_list = ['北京市', '上海市', '天津市', '重庆市', '新疆维吾尔自治区', '宁夏回族自治区', '西藏自治区', '内蒙古自治区']
    if province_name not in special_province_list:
        province_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,'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()
# 格式转化,转换为Python字典
data_dict=json.loads(data)
# 获取数据
data_list=data_dict['areaTree'][0]['children'][3]['children']
# 循环列表获取市名和确诊人数
required_data_list=[]
for city_data in data_list:
    city_name=city_data['name']+'市' # 追加市
    city_confirm=city_data['total']['confirm']
    required_data_list.append((city_name,city_confirm))
# 手动添加济源市数据
required_data_list.append(('济源',5))
# 构建地图
map=Map()
# 向地图中添加数据
map.add('河南疫情确诊图',required_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.coloradmin.cn/o/2043841.html

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

相关文章

什么反人类设计?

一、什么反人类设计? 反人类设计,也被称为“诺曼”,是由美国心理学家唐纳德A诺曼提出的概念,指的是那些设计不佳、不利于用户使用的物品。这类设计的特点通常包括不符合人体工学原理、与日常认知和惯性思维相悖。在日常生活中&…

OpenCV图像滤波(13)均值迁移滤波函数pyrMeanShiftFiltering()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 函数执行均值迁移图像分割的初始步骤。 该函数实现了均值迁移分割的过滤阶段,即输出是经过滤波的“海报化”图像,其中颜色…

Java 垃圾回收,看一遍就懂

了解 Java 垃圾收集的工作原理并优化应用程序中的内存使用情况。详细了解 Java 中内存管理的复杂性。 垃圾收集是一个关键过程,可以帮助任何Java 开发公司。编程语言中的这一强大功能可以巧妙地管理内存分配和释放,防止内存泄漏并优化资源利用率。它就像…

pytorch库 04 神经网络代码基础

文章目录 一、神经网络基本骨架 nn.Module二、卷积层三、池化层四、非线性激活层五、线性层六、模型搭建小练习:CIFAR 10 model 结构七、损失函数与反向传播八、优化器九、现有网络模型的使用与修改十、网络模型的保存与读取十一、一个完整模型训练套路十二、GPU加速…

arm体系结构(1)

一 RAM: 随机存储(主存储器) 速度快、掉电数据丢失 ROM: 只读存储(辅助存储器) 速度慢、掉电数据不丢失 RAM SRAM DRAM SDRAM DDR2、3、4、5 静态 动态 同步 ROM PROM EPROM EEPROM 可编程 可擦除 电可擦可编程 flash:结合RAM和ROM的优点,快、掉…

Visual Studio 2022 LNK2001无法解析的外部符号 _wcscat_s 问题记录

ANSI C程序中,用到了wcsrchr、wcsncpy_s、wcscat_s、wcscpy_s等几个字符串函数,但是编译时提示: 错误 LNK2001 无法解析的外部符号 _wcscat_s 查了挺多帖子,没有解决。 https://bbs.csdn.net/topics/250012844 解决VS编译…

Python青少年简明教程:为何学习Python编程语言及Python编程环境搭建

Python青少年简明教程:为何学习Python编程语言及Python编程环境搭建 我们写给他人看的文章,使用类语言。人类语言有很多种如汉语,英语,法语等等。 而写给 计算机 执行的 程序文件 ,必须使用 编程语言 , 因…

Java 集成测试详解及示例

通过综合指南探索 Java 集成测试的世界。了解工具、流程和最佳实践,并辅以实际示例。 随着软件系统变得越来越大、越来越复杂,组件和服务以错综复杂的方式交互,集成测试已变得不可或缺。通过验证所有组件和模块在组合时是否正常工作&#xff…

三级_网络技术_27_计算机网络环境及应用系统的安装与调试

1.对于频繁改变位置并使用DHCP获取PP地址的DNS客户端,为减少对其资源记录的手动管理,可采取的措施是()。 允许动态更新 使用反向查找区域 增加别名记录 设置较小的生存时间 2.下列Windows 2003系统命令中,可以清空DNS缓存(DNScache)的是…

在Ubuntu上有什么命令,或者是系统文件能告诉我链接nvme ssd的pcie槽位是不是支持热插拔功能?

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

打靶记录11——Billu_b0x

靶机: https://download.vulnhub.com/billu/Billu_b0x.zip难度: 中(两种攻击路线) 目标: 取得root权限 涉及的攻击方法: 主机发现端口扫描Web信息收集SQL注入(Sqlmap跑不出来)…

Spring Boot 3.3 【四】Spring Boot 整合JPA

🌟 技术人聊管理 请关注 【技术管理修行】 一、JPA 简介 Spring Data JPA 是 Spring Data 项目的一部分,它为使用 Java Persistence API (JPA) 进行数据库访问提供了一种非常简便的方式。Spring Data JPA 的主要目的是简化基于 JPA 的数据访问层的开发工…

leetCode - - - 栈和队列

目录 1.有效的括号( LeetCode 20 ) 2.最小栈( LeetCode 155 ) 3.接雨水( LeetCode 42 ) 4.逆波兰表达式求值(LeetCode 150) 5.柱状图中最大的矩形(LeetCode 84&…

SAP LE学习笔记02 - WM和库存管理(IM)之间的关系,保管Lot(Quant)

上一章学习了LE的基础知识。 1,LE的概述,LE里面包含下面3个大的模块 - LE-WM 仓库管理 / - LE-SHP 发货/ - LE-TRA 运输 2,仓库的结构 - 仓库番号 / -保管域Type(存储区域)/ - 保管区画(存储区)/ - 棚番(Storage Bin 仓位&…

IDEA快捷键(Ctrl + tab)非常好用 切换最近使用的编辑器选项卡

文章目录 1、为什么要使用 ctrl tab 快捷键?2、使用 ctrl tab 快捷键 1、为什么要使用 ctrl tab 快捷键? 当我们点击 ctrl alt 鼠标左键点击 进入方法的实现时,这个时候我们会在这个实现类中不断的点击,查看源码&#xff0c…

【安全工具推荐-Search_Viewer资产测绘】

目录 一、工具介绍 二、工具配置 三、传送门 一、工具介绍 Search_Viewer,集Fofa、Hunter鹰图、Shodan、360 quake、Zoomeye 钟馗之眼、censys 为一体的空间测绘gui图形界面化工具,支持一键采集爬取和导出fofa、shodan等数据,方便快捷查看…

竞争与冒险/亚稳态/跨时钟域

竞争与冒险/亚稳态/跨时钟域 文章目录 竞争与冒险/亚稳态/跨时钟域1.亚稳态1.1 好文章1.2 什么是亚稳态1.3亚稳态的解决办法1.3.1 跨时钟域的亚稳态——采用同步机制1.3.1.1 单比特(脉冲和单比特流)的跨时钟域同步1.3.1.1.1 单比特流的跨时钟域同步1.3.1.1.2 脉冲的跨时钟域同步…

.NET辅助角色服务入门简介

在日常开发中,并不是所有的功能都是用户可见的,还在一些背后默默支持的程序,这些程序通常以服务的形式出现,统称为辅助角色服务。今天以一个简单的小例子,简述基于.NET开发辅助角色服务的相关内容,仅供学习…

旅行商问题变体:欧几里德平面中线段最小连接算法

问题描述 假设在欧几里德平面上有有限多条线段,如何将它们连接起来,形成一条最小长度的线段链? 首先,自然可以穷举所有情况,找到最优解。还可以采用动态规划、贪心算法找到局部最优解。 另外,则将其作为T…

定时器延时us(hal库)

目录 定时器延时us 配置cubemx ​编辑​编辑新建模块 代码实现 测试代码 定时器延时us 复制工程模板 配置cubemx 新建模块 新建文件HardWare 添加文件HardWare 添加文件路径 添加HardWare 或者直接输入/HardWare 添加.c和.h文件 .h文件 添加防重复定义代码 #ifnd…