2024.4.19 Python爬虫复习day07 可视化3

2024-04-15 02:04

本文主要是介绍2024.4.19 Python爬虫复习day07 可视化3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

综合案例

需求:

已知2020年疫情数据,都是json数据,需要从文件中读出,进行处理和分析,最终实现数据可视化折线图
在这里插入图片描述

相关知识点:

json

json简介: 本质是一个特定格式的字符串      举例:  '[{},{},{}]' 或者 '{}'python中json包: import jsonpython数据转为json数据:  变量接收json数据 = json.dumps(python字典或者列表)json数据转为python数据:  变量接收python字典或者列表 = json.loads(json数据)

pyecharts

pyecharts简介: python版本的echarts可视化工具使用pyecharts包: 先安装pyecharts,再导包:  import pyecharts可以制作不同种类的图表,示例如下:制作饼图: from pyecharts.charts import Pie制作地图: from pyecharts.charts import Map制作折线图: from pyecharts.charts import Line制作柱状图: from pyecharts.charts import Bar制作图表步骤,如下:1.导包2.创建对象3.添加数据4.设置全局选项5.渲染成页面

代码:

前提是: 把资料中的疫情数据目录复制到项目中

自定义模块:

此模块目的是为了重复去读取各个国家疫情数据

read_json_file.py模块代码如下:

# 导包
import json# 定义一个函数用于处理和分析各个国家的疫情数据
def get_data_2020(file_path, rep_str):"""此函数用于处理和分析各个国家的疫情数据:param file_path: json文件路径:param rep_str: 要替换的json数据开头子串:return: 返回的是元组(日期数据,确诊数据)"""# 一.数据处理: 抽取  转换  加载# 1.抽取: 读取文件中json数据with open(file_path, 'r', encoding='utf8') as f:json_data = f.read()# 打印数据,测试是否成功读取,注意: 测试完可以注释或者删除# print(json_data)# 2.转换: 把json数据中无效的数据清洗过滤掉# 去除开头的'jsonp_1629344292311_69436('json_data = json_data.replace(rep_str, '')# 去除结尾的');'json_data = json_data[:-2]# 3.加载: 把json数据转为python容器dict_data = json.loads(json_data)# 打印数据,测试是否成功读取,注意: 测试完可以注释或者删除# print(dict_data)# print(type(dict_data))# 二.数据分析: 海量数据提取对自己有价值的部分数据# 再次明确目的: 做2020年各个国家确诊人数折线图# 分析哪些是有价值的数据? 2020年的 updateDate对应日期数据  以及  '确诊'的data数据# 1.先分别获取国家所有的日期数据以及确诊数据update = dict_data['data'][0]['trend']['updateDate']data = dict_data['data'][0]['trend']['list'][0]['data']# 2.获取2020年的日期数据: 核心就是获取到2020年的截止索引time_2020 = update[:update.index('12.31') + 1]# print(2020update)# 3.获取2020年确诊数据: 核心就是获取到2020年的截止索引data_2020 = data[:update.index('12.31') + 1]# print(uas_2020data)# 返回最终结果 默认放到元组容器中(a,b)return time_2020, data_2020

测试模块:

# 下述导自定义模块模块报错,因为模块名称不能以数字开头
# import 02_自定义读取文件模块.py# 改名后再导自定义模块正常,因为模块名符合标识符规则
import read_json_file# 测试自定义模块是否能够使用
# 1.获取美国的2020年疫情数据
r1 = read_json_file.get_data_2020('疫情数据/美国.txt', 'jsonp_1629344292311_69436(')
print(r1)
# 2.获取日本的2020年疫情数据
r2 = read_json_file.get_data_2020('疫情数据/日本.txt', 'jsonp_1629350871167_29498(')
print(r2)
# 3.获取美国的2020年疫情数据
r3 = read_json_file.get_data_2020('疫情数据/印度.txt', 'jsonp_1629350745930_63180(')
print(r3)

数据可视化:

# 1.导包
from pyecharts.charts import Line
from read_json_file import get_data_2020
import pyecharts.options as opts# 2.创建对象
line = Line(init_opts=opts.InitOpts(width='1500px', height='800px'))
# 3.添加数据(x和y轴)
# 先读取数据
us_all_data20 = get_data_2020('疫情数据/美国.txt', 'jsonp_1629344292311_69436(')
jp_all_data20 = get_data_2020('疫情数据/日本.txt', 'jsonp_1629350871167_29498(')
in_all_data20 = get_data_2020('疫情数据/印度.txt', 'jsonp_1629350745930_63180(')
# 再添加数据
line.add_xaxis(jp_all_data20[0])
# 由于三个数据个数不一致,会导致数据错位
# us数据列表头添加1个0元素
us_all_data20[1].insert(0, 0)
# in数据前面添加46个0元素
# 采用列表推导式快速生成多个0列表,然后和原有列表拼接成新的一个列表
zero_list = [i * 0 for i in range(46)]
in_all_data20 = zero_list + in_all_data20[1]# 添加数据
line.add_yaxis('us数据', us_all_data20[1], symbol_size=10,linestyle_opts=opts.LineStyleOpts(width=5))
line.add_yaxis('jp数据', jp_all_data20[1], symbol_size=10)
line.add_yaxis('in数据', in_all_data20, symbol_size=10, label_opts=opts.LabelOpts(is_show=False))# 4.设置全局选项
line.set_global_opts(title_opts=opts.TitleOpts(title='2020印美日累计确诊人数折线图',pos_left='center',pos_bottom='1%'),yaxis_opts=opts.AxisOpts(name='确诊人数'),xaxis_opts=opts.AxisOpts(name='时间'),legend_opts=opts.LegendOpts(pos_top='1%')
)
# 5.渲染成页面
line.render('2020印美日累计确诊人数折线图.html')

这篇关于2024.4.19 Python爬虫复习day07 可视化3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高

Python实现中文文本处理与分析程序的示例详解

《Python实现中文文本处理与分析程序的示例详解》在当今信息爆炸的时代,文本数据的处理与分析成为了数据科学领域的重要课题,本文将使用Python开发一款基于Python的中文文本处理与分析程序,希望... 目录一、程序概述二、主要功能解析2.1 文件操作2.2 基础分析2.3 高级分析2.4 可视化2.5

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

Python实现终端清屏的几种方式详解

《Python实现终端清屏的几种方式详解》在使用Python进行终端交互式编程时,我们经常需要清空当前终端屏幕的内容,本文为大家整理了几种常见的实现方法,有需要的小伙伴可以参考下... 目录方法一:使用 `os` 模块调用系统命令方法二:使用 `subprocess` 模块执行命令方法三:打印多个换行符模拟

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

Python 字典 (Dictionary)使用详解

《Python字典(Dictionary)使用详解》字典是python中最重要,最常用的数据结构之一,它提供了高效的键值对存储和查找能力,:本文主要介绍Python字典(Dictionary)... 目录字典1.基本特性2.创建字典3.访问元素4.修改字典5.删除元素6.字典遍历7.字典的高级特性默认字典