关键词:
不知不觉疫情已经快要才出现三年了,对于疫情管控,我国有一系列良好的措施。下面我们通过python对疫情数据进行一个简单的爬取整理以及可视化。
#导入模块
import pandas as pd
import requests
#首先这是爬取数据和整理数据我们需要用到的第三方库,疫情数据来自腾讯新闻#实时更新:新冠肺炎疫情最新动态https://news.qq.com/zt2020/page/feiyan.htm#/
https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/listmodules=localCityNCOVDataList,diseaseh5Shelf
#这里已经通过抓包工具获取了所需数据(国内疫情数据)链接,可以直接复制使用的
url='https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/listmodules=localCityNCOVDataList,diseaseh5Shelf'
#模拟浏览器发送请求并接收响应
resp = requests.get(url)
#json类型转换,并获取data数据
json_data = resp.json()['data']
#json_data #查看此时数据
#数据已经爬出来了,我们需要把有用的数据提取出出来,首先要做的就是新建一个列表啦,把提取的数据都存入列表最后转化为dataframe格式,保存为csv文件就可以轻松查看每天疫情实时数据了
china_data = json_data['diseaseh5Shelf']['areaTree'][0]['children']
data_set = []
#提取每个省份的数据
for i in china_data:
#空字典
data_dict =
#省份名称
data_dict['province'] = i['name']
#新增确诊
data_dict['nowConfirm'] = i['total']['nowConfirm']
#累计确诊
data_dict['confirm'] = i['total']['confirm']
#死亡人数
data_dict['dead'] = i['total']['dead']
#治愈人数
data_dict['heal'] = i['total']['heal']
#添加字典进空列表
data_set.append(data_dict)
#转化为dataframe格式
df = pd.DataFrame(data_set)
df #查看此时表格数据
#保存数据为csv格式,编码用gbk
df.to_csv('疫情数据.csv', encoding='gbk')
数据可视乎所需要的数据就已经整出来咯,有一点特别要注意的是编码一定要用GBK,不然默认是utf8打开csv就是乱码了!!!!
下面进行数据可视化,相比于matplotlib个人还是比较喜欢pyecharts,虽然比较复杂一嘞嘞,但是确实图标颜值高很多嗷。
#首先也是导入画图需要的第三方库(Python太太太太太强大了,他拥有的远不止你看到的!!)
from pyecharts import options as opts
from pyecharts.charts import Bar,Line,Pie,Map,Page
第一个图,各地区累计确诊人数与死亡人数情况柱状图
bar = (
Bar(init_opts=opts.InitOpts(width="980px",height="500px",bg_color='pink')) #画板大小以及颜色,这里简单的用一个粉色吧
.add_xaxis(list(df['province'].values)) #添加x轴数据各省份名
.add_yaxis("死亡",df['dead'].values.tolist()) #添加y轴数据死亡人数
.add_yaxis("累计确诊",df['confirm'].values.tolist()) #添加y轴数据累计确诊人数
.set_global_opts( #设置标题
title_opts=opts.TitleOpts(title='各地区累计确诊人数与死亡人数情况',subtitle='制作人:konoha'),
datazoom_opts=[opts.DataZoomOpts(type_="slider")],
yaxis_opts=opts.AxisOpts(name="人数"),
xaxis_opts=opts.AxisOpts(name="省份")
)
)
bar.render_notebook()
第二个图,全国各地区现有确诊人数地图
china_map = (
Map(init_opts=opts.InitOpts(width="980px",height="500px",bg_color='pink'))
.add("现有确诊", [list(i) for i in zip(df['province'].values.tolist(),df['nowConfirm'].values.tolist())],"china")
.set_global_opts(
title_opts=opts.TitleOpts(title="各地区现有确诊人数",subtitle='制作人:konoha'),
visualmap_opts=opts.VisualMapOpts(max_=300,is_piecewise=False,is_show=True),
legend_opts=opts.LegendOpts(pos_left="90%",pos_top="60%"),
)
)
china_map.render_notebook()
第三个图,各地区现有确诊人数饼图
datas = list(zip(
df["province"].values.tolist(),
df["nowConfirm"].values.tolist()
))
pie = (
Pie(init_opts=opts.InitOpts(width="980px",height="500px",bg_color='pink'))
.add("",datas,radius = ["15%","35%"])
.set_global_opts(
title_opts=opts.TitleOpts(title="各地区现有确诊人数",subtitle='制作人:konoha',pos_top="90%",pos_left="5%"),
legend_opts = opts.LegendOpts(pos_left = '90%',pos_bottom = 'bottom',item_height = 5,item_width = 5)
)
.set_series_opts(label_opts=opts.LabelOpts(font_size =9))
)
datas
pie.render_notebook()
从图还是可以看出湾湾和大陆的区别哈
第四个图,各地区现有确诊人数折线图
line = (
Line(init_opts=opts.InitOpts(width="980px",height="500px",bg_color='pink'))
.add_xaxis(list(df['province'].values))
.add_yaxis("现有确诊",df['nowConfirm'].values.tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title='各地区现有确诊人数',subtitle='制作人:konoha'),
tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'),
datazoom_opts=[opts.DataZoomOpts()]
)
)
line.render_notebook()
pyecharts的基本图表绘制大概就是这样啦,其中有一些配置项很实用,需要更多了解就去官网看看吧:pyecharts - A Python Echarts Plotting Library built with love.Descriptionhttps://pyecharts.org/#/zh-cn/intro
最后要是不嫌麻烦也可以把四张图都放在同一个画布下面:
page = Page(layout = Page.SimplePageLayout)
page = Page(page_title = 'konoha', layout = Page.DraggablePageLayout)
page.add(bar,china_map,pie,line)
page.render('page.html')
#保存html文件并打开,调整图片位置,查看更加方便直观,并且保存下载chart_config.json文件
Page.save_resize_html("page.html", cfg_file = "chart_config.json", dest = "new_page.html")
#保存已经调整好图片位置的html文件,可直接浏览器打开查看。
最后的最后突然觉得自己画的好丑,555555
下面是完整代码:
#导入模块
import pandas as pd
import requests
#用抓包工具提取所需数据链接 https://news.qq.com/zt2020/page/feiyan.htm#/
url = 'https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/list?modules=localCityNCOVDataList,diseaseh5Shelf'
#模拟浏览器发送请求并接收响应
resp = requests.get(url)
#json类型转换,并获取data数据
json_data = resp.json()['data']
#json_data #查看此时数据
#列表,查找关键词中国
china_data = json_data['diseaseh5Shelf']['areaTree'][0]['children']
data_set = []
#提取每个省份的数据
for i in china_data:
#空字典
data_dict =
#省份名称
data_dict['province'] = i['name']
#新增确诊
data_dict['nowConfirm'] = i['total']['nowConfirm']
#累计确诊
data_dict['confirm'] = i['total']['confirm']
#死亡人数
data_dict['dead'] = i['total']['dead']
#治愈人数
data_dict['heal'] = i['total']['heal']
#添加字典进空列表
data_set.append(data_dict)
#转化为dataframe格式
df = pd.DataFrame(data_set)
#df #查看此时表格数据
# #保存数据为csv格式,编码用gbk
df.to_csv('疫情数据.csv', encoding='gbk')
#导入数据可视化工具
from pyecharts import options as opts
from pyecharts.charts import Bar,Line,Pie,Grid,Map,Page
bar = (
Bar(init_opts=opts.InitOpts(width="980px",height="500px",bg_color='pink'))
.add_xaxis(list(df['province'].values)) #添加x轴数据各省份名
.add_yaxis("死亡",df['dead'].values.tolist()) #添加y轴数据死亡人数
.add_yaxis("累计确诊",df['confirm'].values.tolist()) #添加y轴数据累计确诊人数
.set_global_opts( #设置标题
title_opts=opts.TitleOpts(title='各地区累计确诊人数与死亡人数情况',subtitle='制作人:konoha'),
datazoom_opts=[opts.DataZoomOpts(type_="slider")],
yaxis_opts=opts.AxisOpts(name="人数"),
xaxis_opts=opts.AxisOpts(name="省份")
)
)
bar.render_notebook()
china_map = (
Map(init_opts=opts.InitOpts(width="980px",height="500px",bg_color='pink'))
.add("现有确诊", [list(i) for i in zip(df['province'].values.tolist(),df['nowConfirm'].values.tolist())],"china")
.set_global_opts(
title_opts=opts.TitleOpts(title="各地区现有确诊人数",subtitle='制作人:konoha'),
visualmap_opts=opts.VisualMapOpts(max_=300,is_piecewise=False,is_show=True),
legend_opts=opts.LegendOpts(pos_left="90%",pos_top="60%"),
)
)
china_map.render_notebook()
datas = list(zip(
df["province"].values.tolist(),
df["nowConfirm"].values.tolist()
))
pie = (
Pie(init_opts=opts.InitOpts(width="980px",height="500px",bg_color='pink'))
.add("",datas,radius = ["15%","35%"])
.set_global_opts(
title_opts=opts.TitleOpts(title="各地区现有确诊人数",subtitle='制作人:konoha',pos_top="90%",pos_left="5%"),
legend_opts = opts.LegendOpts(pos_left = '90%',pos_bottom = 'bottom',item_height = 5,item_width = 5)
)
.set_series_opts(label_opts=opts.LabelOpts(font_size =9))
)
datas
pie.render_notebook()
line = (
Line(init_opts=opts.InitOpts(width="980px",height="500px",bg_color='pink'))
.add_xaxis(list(df['province'].values))
.add_yaxis("现有确诊",df['nowConfirm'].values.tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title='各地区现有确诊人数',subtitle='制作人:konoha'),
tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'),
datazoom_opts=[opts.DataZoomOpts()]
)
)
line.render_notebook()
page = Page(layout = Page.SimplePageLayout)
page = Page(page_title = '曾安鑫', layout = Page.DraggablePageLayout)
page.add(bar,china_map,pie,line)
page.render('page.html')
Page.save_resize_html("page.html", cfg_file = "chart_config.json", dest = "new_page.html")
毕业设计大数据全国疫情数据分析与3d可视化-python大数据(代码片段)
...#xff0c;今天要分享的是🚩大数据全国疫情数据分析与3D可视化🥇学长这里给一个题目综合评分(每项满分5分)难度系数:2分工作量:3分创新点:4分🧿选题指导,项目分享:https://gitee.com/dancheng-senior/project-... 查看详情
毕业设计大数据全国疫情数据分析与3d可视化-python大数据(代码片段)
...#xff0c;今天要分享的是🚩大数据全国疫情数据分析与3D可视化🥇学长这里给一个题目综合评分(每项满分5分)难度系数:2分工作量:3分创新点:4分🧿选题指导,项目分享:https://gitee.com/dancheng-senior/project-... 查看详情
用python爬取全国和全球疫情数据,并进行可视化分析(过程详细代码可运行)(代码片段)
...何爬取实时疫情数据,并且分析数据,作出数据可视化的效果。报告梗概:对中国疫情分析1.1展示各省疫情具体情况(包括各省的城市)1.2找出国内新增疫情的城市1.3展示各省这次疫情感染的总人数1.4绘制中... 查看详情
数据大屏python爬取全国及北京疫情数据实现可视化大屏(代码片段)
...家又收获多少?Python爬取全国及北京疫情数据、实现可视化大屏每一个企业向“云”端加速转型,他们同时利用“云”便捷、灵活、安全且前期投资少的优势,快速地实现价值,然后再扩大规模。对于我们个人来... 查看详情
python根据json数据画疫情分布地图(代码片段)
...录一.基础地图使用1.掌握使用pyecharts构建基础的全国地图可视化图表二.疫情地图——国内疫情地图1.案例效果代码三.疫情地图——省级疫情地图 四.数据集 注:数据集在文章最后一.基础地图使用1.掌握使用pyecharts构建基础... 查看详情
课堂练习-全国疫情统计可视化地图(代码片段)
1第一阶段目标:导入全国疫情数据库payiqing.sql(MySQL数据库)。可以按照时期查询各个省市的疫情统计表格。以折线图或柱状图展示某天的全国各省的确诊人数。1.首先完成数据库的导入,然后编写数据库代码。建立DBUtil.java。... 查看详情
全国疫情数据可视化展示(详细介绍,含完整源码)
一、全国疫情数据爬取1.数据表共有两个,分别为details和history,表结构如下:2.爬取全国疫情数据代码如下:importrequestsimportjsonimporttimeimportpymysqlimporttracebackdefget_details 查看详情
基于flask框架的新冠疫情数据可视化系统(代码片段)
基于flask框架的新冠疫情数据可视化系统新冠疫情数据可视化系统是本学期大数据可视化这门课的结课作业,本系统有四个模块的功能,涵盖有视频播放、疫情情况中国地图分布、Echarts饼状图和树状图等,应用Python爬... 查看详情
毕业设计-题目:基于大数据的疫情数据分析及可视化系统(代码片段)
...#xff0c;这里是丹成学长,今天做一个基于大数据的疫情可视化系 查看详情
全国疫情统计可视化地图(代码片段)
第二阶段的要求是通过地图展示全国疫情的情况。 1:首先要下载中国地图的插件china.js ,由于目前Echarts官网已经不提供地图的下载。下面是echarts.min.js china.js和各个省份地图的js的资源,方便... 查看详情
全国疫情防控监控平台开发
...包括疫情动态,疫情地图,实时疫情图表,疫情数据统计可视化界面,定点医院的追踪,定点医院信息管理,新闻资讯的展示,分类管理,疫情数据的上报和展示,用户登陆登出,信息及权限的管理,实时天气预报等功能。前端... 查看详情
python使用flask框架实现疫情监控追踪可视化项目(代码片段)
...取电影信息,今天,博主分享的项目是疫情监控可视化的项目编程语言:python框架:flask数据库:MySQL开发环境:python3.7pycharm涉及知识:爬虫+ajax+echart+flask首先给大家看一下最终效果:我们来梳... 查看详情
全球疫情形势动态地图展示(超帅超好玩的python动图)(代码片段)
全球疫情及疫苗接种进度可视化之一--全球疫情形势动态地图展示安装plotly库全球疫情形势定义工具函数抽取数据绘制动态图表重抽样数据抽取、整理与可视化展示抽取原始数据按周重抽样确诊病例治愈病例死亡病例全国疫情及... 查看详情
「python」使用pyecharts生成疫情分布地图
...地级市的疫情数据,那么我们如何来使用Python实现将数据可视化在地图上呢?ApacheEcharts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而Python是一门富有表达力的语言,很... 查看详情
全国疫情统计可视化地图(代码片段)
第三阶段是数据下钻,要求点击省可以下钻到各个地市的数据显示。 1:首先,要显示相应的地图需要导入相应的js上一篇文章中分享的链接同样包含各个省份的js 链接:https://pan.baidu.com/s/1MF... 查看详情
大数据毕设选题-flask疫情数据可视化系统(python)(代码片段)
文章目录1前言1课题背景2数据库设计实现3实现效果4Flask框架5爬虫6Ajax技术7Echarts1前言🔥Hi,大家好,这里是丹成学长的毕设系列文章!🔥对毕设有任何疑问都可以问学长哦!这两年开始,各个学校对毕设的... 查看详情
入门react17+vite+echarts实现疫情数据可视化「04初始化项目」(代码片段)
往期文章目录:React17+Vite+ECharts实现疫情数据可视化「01项目介绍篇」React17+Vite+ECharts实现疫情数据可视化「02快速搭建项目」React17+Vite+ECharts实现疫情数据可视化「03学习ReactHooks」文章目录初始化项目更改目... 查看详情
入门react17+vite+echarts实现疫情数据可视化「04初始化项目」(代码片段)
往期文章目录:React17+Vite+ECharts实现疫情数据可视化「01项目介绍篇」React17+Vite+ECharts实现疫情数据可视化「02快速搭建项目」React17+Vite+ECharts实现疫情数据可视化「03学习ReactHooks」文章目录初始化项目更改目... 查看详情