第一阶段-第十一章 Python基础的综合案例(数据可视化-地图可视化)

news2024/11/25 1:34:32

目录

  • 一、基础地图使用
  •   1.学习目标
  •   2.视觉映射器
  •   3.本节的演示
  • 二、疫情地图-国内疫情地图
  •   1.案例效果
  •   2.函数的语法
  •   3.本节的代码演示
  • 三、疫情地图-省级疫情地图
  •   1.案例效果
  •   2.本节的代码演示

  说明:该文章是学习 黑马程序员在B站上分享的视频 黑马程序员python教程,8天python从入门到精通而记录的笔记,笔记来源于本人。 若有侵权,请联系本人删除。笔记难免可能出现错误或笔误,若读者发现笔记有错误,欢迎在评论里批评指正。此笔记对应的doc文件的百度网盘下载链接为 Python入门(黑马)的学习笔记,提取码:1b3k。另外,本次笔记加了 gif动图,使用免费的potplayer播放器可以控制gif的播放进度。
在这里插入图片描述 在这里插入图片描述

一、基础地图使用

  1.学习目标

  掌握使用pyecharts构建基础的全国地图可视化图表。
在这里插入图片描述

  2.视觉映射器

在这里插入图片描述
  代码中类似"#CCFFFF”指的是颜色的RGB值,颜色可以到网站去寻找,比如之前用到的网站:“https://c.runoob.com/front-end/53/”。下图展示了如何寻找颜色的RGB值。
在这里插入图片描述

  3.本节的演示

  先打开软件,右键创建一个名为“04_地图可视化的基本使用”的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()

在这里插入图片描述

二、疫情地图-国内疫情地图

  1.案例效果

在这里插入图片描述

  2.函数的语法

  本次演示需要使用名为“疫情.txt”的存储json数据的文件(该文件可以从黑马程序员的粉丝群或者本人的百度网盘上获取)。如图所示,利用json解释的网站(如“https://c.runoob.com/front-end/53/”、“http://sjson.cn/”等)对文件“疫情.txt”的数据进行转化,可以知道数据的层次结构。
在这里插入图片描述
在这里插入图片描述

  3.本节的代码演示

  先打开软件,创建一个名为“05_全国疫情可视化地图开发”的py文件。
在这里插入图片描述在这里插入图片描述
  根据json文件编写代码并运行。代码如下,可参考注释进行理解。

"""
演示全国疫情可视化地图开发
"""

import json
from pyecharts.charts import Map
from pyecharts.options import TitleOpts, VisualMapOpts

# 读取数据文件
f = open("D:/test/1-11/疫情.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"]  # 省份名称
    if province_name == "北京" or province_name == "上海" \
            or province_name == "重庆" or 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 == "新疆":
        province_name = "新疆维吾尔自治区"
    else:
        province_name += '省'
    province_confirm = province_data["total"]["confirm"]  # 确诊人数
    data_list.append((province_name, province_confirm))

# print(data_list)  # 中途用来验证数据是否正确

# 创建地图对象
map = Map()

# 添加数据
map.add("各省份确诊人数", data_list, "china")

# 设置全局配置,定制分段的视觉映射
map.set_global_opts(
    title_opts=TitleOpts(title="全国疫情地图", pos_left="center"),
    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")

在这里插入图片描述
  注:可能由于pyecharts包的更新,导致数据的省市名称和地图对应不上,相比与原视频,需要对省份加上“省”字,直辖市加上“市“,少数民族自治区需要改成全称,如下图所示。
在这里插入图片描述

三、疫情地图-省级疫情地图

  1.案例效果

  本次演示将以河南省为例,绘制某一天全省确诊人数的分布情况。
在这里插入图片描述

  2.本节的代码演示

  如下图所示,将文件“疫情.txt”存储的json数据复制到json的解释网站(如“https://c.runoob.com/front-end/53/”)进行解析,然后理解该文件的层次关系,找到本次需要用到的河南省的各个市的确诊人数。
在这里插入图片描述
  打开软件,创建一个名为“06_省级疫情可视化地图开发”的py文件。
在这里插入图片描述
在这里插入图片描述
  根据数据的层次关系编写代码并右键运行。代码如下,可参考注释进行理解。

"""
演示河南省疫情地图开发
"""
import json
from pyecharts.charts import Map
from pyecharts.options import TitleOpts, VisualMapOpts

# 读取文件
f = open("D:/test/1-11/疫情.txt", 'r', encoding="UTF-8")
data = f.read()
# 关闭文件
f.close()

# json数据转换为python字典
data_dict = json.loads(data)

# 根据数据的层次结构获取河南省数据
cities_data = data_dict['areaTree'][0]['children'][3]['children']

# 准备数据为元组并放入list
data_list = list()
for city_data in cities_data:
    city_name = city_data['name'] + "市"
    city_confirm = city_data['total']['confirm']
    data_list.append((city_name, city_confirm))

# print(data_list)  用于中途测试数据
# 手动添加济源市的数据
data_list.append(("济源市", 5))

# 创建地图对象
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("河南省疫情地图.htm")

在这里插入图片描述
  好了,本章的笔记到此结束,谢谢大家阅读。

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

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

相关文章

SPRINGBOOT部署安装hello world

1.安装JAVA环境,设置为全局变量 用以下方法检查,安装是否正确 2.maven安装,并且修改setting中的镜像设置,改为国内阿里云镜像 3.idea中设置JDK版本号,IDEA中springboot不要选择3.0版本,会出现与jdk不匹…

如何在照片上添加水印?这三个方法让你轻松实现

我有个朋友他是一名摄影爱好者,他在旅行中经常能捕捉到一些绝美的照片。他为了分享这份美丽,决定将它们上传到社交媒体上。但是,他很担心别人未经许可就盗用了他的作品。于是他来想我请教这个问题。我就给他推荐了几款加水印软件,…

(学习笔记-TCP基础知识)TCP与UDP区别

UDP UDP不提供复杂的控制机制,利用IP提供面向[无连接]的通信服务。 UDP协议非常简单,头部只有8个字节(位),UDP的头部格式如下: 目标和源端口:主要是告诉UDP协议应该把报文发给哪个进程包长度:该字段保存了…

CentOS目录详解

在centos中,最顶层的目录称作根目录, 用/表示。/目录下用户可以再创建目录,但是有一些目录随着系统创建就已经存在,接下来重点介绍几个常用目录。 /bin(binary)包含了许多所有用户都可以访问的可执行文件&a…

轻松实现金蝶云星空与赛意SMOM系统的全面集成

1. 金蝶云星空:为运营协同与管控型企业提供通用ERP服务平台 金蝶云星空是基于当今先进管理理论和数十万家国内客户最佳应用实践开发的ERP服务平台。它针对事业部制、多地点、多工厂等企业和集团公司,提供了通用的企业资源计划(ERP&#xff0…

win键无效,键盘Win组合键突然不不能用如何解决?

电脑win键失效怎么办? 在使用windows系统的时候,发现一个问题,就是win键失效了,怎么按都没有反应,该怎么办呢? 键盘方面的原因 此时之是键盘的原因与系统本身没有关系,键盘屏蔽热键主要目标是…

【技能实训】DMS数据挖掘项目-Day13

文章目录 任务15【任务15.1】ClientFrame.java【任务15.2】ClientFrame.java【任务15.3】实现匹配日志信息或物流数据的数据保存功能(保存到本地文件),将15.2中,返回的匹配数据,保存到客户端文件中【任务15.4】实现物流…

恢复软件哪些好?推荐3款,亲试好用!

“想问下朋友们有什么好的恢复软件推荐吗?我的电脑数据经常都莫名其妙就找不到了,我也不敢随意进行操作。如果有好的数据恢复软件,快给我推荐推荐吧!” 电脑数据很多都是比较重要的,如果经常丢失数据,会对我…

DV SSL证书

一、DV SSL证书是什么? DV SSL(又称域名验证型证书)是便宜又快速实现网站HTTPS加密、有效防劫持的SSL证书。购买DV证书仅需百十元起,只需验证域名的所有权,3-5分钟极速签发。因此,DV SSL证书成为众多个人网…

探索新机遇,助力娱乐社交新增长丨网易云信亮相 PMTalk 北京产品运营大会

近日,在 PMTalk 联合网易易盾、网易云信主办的北京产品运营大会上,网易云信娱乐社交产品经理聂夏军介绍了 AIGC 与娱乐社交行业融合并助力业务新增长的思路,并分享了网易云信在帮助开发者业务增长方面的探索和实践经验。 由于国内娱乐社交市场…

nginx推流环境搭建

目录 1、创建安装文件夹2、安装编译 nginx 所需要的库3、下载 nginx-1.21.6.tar.gz下载 nginx-rtmp-module4、解压解压nginx文件解压rtmp模块5、编译6、安装7、启动nginx,检测nginx是否能成功运行8、配置nginx使用RTMP9、重启nginx服务器1、创建安装文件夹 cd ~ mkdir nginx …

无参数读文件和RCE总结

什么是无参数? 顾名思义,就是只使用函数,且函数不能带有参数,这里有种种限制:比如我们选择的函数必须能接受其括号内函数的返回值;使用的函数规定必须参数为空或者为一个参数等 接下来,从代码…

基于51单片机和proteus的温室大棚系统

此系统是基于51单片机和proteus的仿真设计,功能如下: 1. LCD1602实时显示光照/土壤湿度/温度值及设定值。 2. 按键可增减光照/土壤湿度/温度设定阈值。 3. 获取到的温度低于设定温度则打开加热设备。 4. 获取到的光照值低于设定光照值则打开补光灯。…

「车型分析」控制系统典型应用车型 —— 停车机器人

如今,城市可用土地的日益稀缺(城市化)和汽车使用数量的增加(机动化),为了可持续性发展和其他生活质量问题相结合,由此孕育出来了一种自动停车系统。停车机器人凭借其灵活、高效、标准化的停车模式&#xff…

高时空分辨率、高精度一体化预测技术之风、光、水能源自动化预测教程

详情点击链接:高时空分辨率、高精度一体化预测技术之风、光、水能源自动化预测 第一:预测平台及安装 一、高精度气象预测基础 综合气象观测数值模拟模式; 全球预测模式、中尺度数值模式; 二、自动化预测平台 Linux系统 Crontab…

直播软件源码开发搭建提高安全性方案

随着互联网技术的发展与普及,直播软件源码平台早已深入到大家生活当中,人们常常在直播软件源码平台中去获取资讯、发布资讯或是去寻找想要的物品。但是,直播软件源码平台虽是一款放松娱乐、获取资讯等作用的软件,但也包含了用户们…

IDEA实用设置及插件

一、IDEA实用设置 二、IDEA实用插件 1. aiXcoder是一个基于最先进的深度学习技术的强大的代码完成器和代码搜索引擎。它有可能向您推荐一整行代码,这将帮助您更快地进行编码。AiXcoder还提供了一个代码搜索引擎,帮助您在GitHub上搜索API用例。 2. 阿里…

【25】SCI易中期刊推荐——神经网络科学(中科院4区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

学术论文——2.学术论文编写规则(参考国家标准GB/T 7713.2-2022)

目录 1 组成部分 1.1 一般要求 1.2 前置部分 1.3 正文部分 1.4 附录部分 2 编排格式要求 2.1 编号要求 2.2 量和单位 2.3 图表 2.4 数字 2.5 数学式 3 字号和字体 该规则的适用范围包括一切反映自然、社会和人文等的科学体系的学术论文&#xff0c;规定了学术论文…

前端(七)——React框架的定位与应用场景解析

&#x1f60a;博主&#xff1a;小猫娃来啦 &#x1f60a;文章核心&#xff1a;React框架的定位与应用场景解析 文章目录 React的产生和发展React框架概述React在前端开发中的角色React框架的优势与劣势最火的9款React UI框架React的定位与使用场景React框架的未来发展趋势学习R…