python可视化疫情事实报告(pyecharts)——可视化
目录
一、网页数据分析
2、数据的爬取
3、这里我们需要获取的数据就是山西省11市的最新报告,上代码:
二、代码实现:
1、第一步,老规矩,导入库,数据采集
2、第二步,数据的处理
3、第三部,图表的制作
三、 成果展示
四、今日美文
即使在劳累,也别忘记,多露出笑容。因为你是在前进,为了遇见更美更好的自己。
一、网页数据分析
1、这期我们要讲解的是用python制作疫情数据可视化类似于这样:
如何?很炫酷吧,还可以在上面点击显示数据。 不过在如此华丽的前提下我们依旧需要先获取到数据,不然哪有掉下来的馅饼呢?
2、数据的获取
这次我们需要出发的网站是这个,这里作者以山西省为例。获取数据制作可视化地图。进去之后你会发现,其实里面有很多数据都是属于隐藏的,如果用requests是很难得到的,因为是Ajax请求,属于异步加载,封装了的,就好比洋葱一样,外面还有一层壳,需要具备JS逆向才好得到(但是对比官方——全国疫情最新消息好拿多了,有兴趣的同学可以试试,虽然没有放入ajax里面,但是数据确实真实的洋葱样,作者花了一小时,最后放弃了)。教同学们一个爬虫技巧,当遇到不难爬,已经是表明了的数据时,可以用requests和urllib,但是遇到Ajax请求的封装包时,如果你技术硬,可以用JS逆向获取,但是我相信,如果技术都到那了,应该来这里也没多大意义了,是吧!当然,也不是没有办法,selenium就是最硬的道理。简单粗暴,直接模拟人工获取数据。
3、这里我们需要获取的数据就是最新报告,上代码:
二、代码实现:
1、第一步,老规矩,导入库,数据采集
# 作者:杨家乐
# 阶段:进阶练习中,请稍后.......
# 开发时间:2022/10/15 01:30
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Map
from selenium.webdriver.common.by import By
from selenium import webdriver
def data_get(url):drive=webdriver.Chrome()drive.get(url)ls=drive.find_elements(By.CSS_SELECTOR,'.w-table-striped .w-table-tbody > tr.w-table-row')city=[]num=[]treatment=[]for i in ls:a=i.text.split(" ")city.append(a[0])num.append(int(a[2]))treatment.append(int(a[4]))return city,num,treatment
这里我们用人工模拟实现数据的获取,大家可以看看这个网页,会发现他的数据是嵌套的而这个的好处就是更加有利于我们数据的获取
这里作者事先在第一个函数中定义了三个列表,分别用于存储市,累计人数,治愈人数。定位得到相应数据后遍历返回到列表,最后将三个列表导出来。
2、第二步,数据的处理
def data_set(city,num,treatment):data={'城市':city,"累计确诊":num,"治愈":treatment}df=pd.DataFrame(data=data)# print(df[df["治愈"]>20])打印治愈人数大于20的省份df.to_excel("2022年10-16山西省疫情时事报告.xlsx")#保存数据z1=[list(i) for i in zip(city,num)]del z1[2]return z1
获取到相对应的数据后我们将这些数据导入到excel数据表中,当然,这里你也可以不用导,作者只是习惯。每次爬虫数据都会给存储记录。因为我们要制作地图,众所周知,山西没有第12个省,而这串数据中我们得到一份境外输入的数据,再导入后我们需要将cishujv进行删除(del list_name[index])。最后,返回整理后的数据。这里作者提前将city和num打包成列表是为了方便制作图表,pyecharts制作图表的方式其实和matplotlib差不多,都是二维数组的方式。
3、第三部,图表的制作
def map_shanxi(z1):map=Map(init_opts=opts.InitOpts(width='500px',height='600px'))map.add('累计感染人数',data_pair=z1,maptype='山西',is_map_symbol_show=False)map.set_series_opts(label_opts=opts.LabelOpts(is_show=True))map.set_global_opts(title_opts=opts.TitleOpts(title='山西省疫情最新报告',subtitle='数据来源-爬虫百度最新报告'),visualmap_opts=opts.VisualMapOpts(max_=302,is_piecewise=True,range_color=['lightskyblue','orange','red']))map.render('山西疫情最新报告.html')
数据整理完后就到画图部分了,这里需要大家先pip install pyecharts导入相关库,具体关于pyecharts的的用法作者就不一一讲解了,因为涉及的知识也是有点多,点击这里,这位博主讲得很细,大家可以去吸收一下。最后,给大家上去全段代码
# 作者:杨家乐
# 阶段:进阶练习中,请稍后.......
# 开发时间:2022/10/15 01:30
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Map
from selenium.webdriver.common.by import By
from selenium import webdriver
def data_get(url):drive=webdriver.Chrome()drive.get(url)ls=drive.find_elements(By.CSS_SELECTOR,'.w-table-striped .w-table-tbody > tr.w-table-row')city=[]num=[]treatment=[]for i in ls:a=i.text.split(" ")city.append(a[0])num.append(int(a[2]))treatment.append(int(a[4]))return city,num,treatment
def data_set(city,num,treatment):data={'城市':city,"累计确诊":num,"治愈":treatment}df=pd.DataFrame(data=data)# print(df[df["治愈"]>20])打印治愈人数大于20的省份df.to_excel("2022年10-16山西省疫情时事报告.xlsx")#保存数据z1=[list(i) for i in zip(city,num)]del z1[2]return z1
def map_shanxi(z1):map=Map(init_opts=opts.InitOpts(width='500px',height='600px'))map.add('累计感染人数',data_pair=z1,maptype='山西',is_map_symbol_show=False)map.set_series_opts(label_opts=opts.LabelOpts(is_show=True))map.set_global_opts(title_opts=opts.TitleOpts(title='山西省疫情最新报告',subtitle='数据来源-爬虫百度最新报告'),visualmap_opts=opts.VisualMapOpts(max_=302,is_piecewise=True,range_color=['lightskyblue','orange','red']))map.render('山西疫情最新报告.html')
def start():url='https://wx.wind.com.cn/WindSariWeb/sari/messageInfo.html?province=shanxi&lan=cn'city,num,treatment=data_get(url)z=data_set(city,num,treatment=treatment)map_shanxi(z1=z)
if __name__ == '__main__':start()
三、 成果展示
四、今日美文
即使在劳累,也别忘记,多露出笑容。因为你是在前进,为了遇见更美更好的自己。
python可视化疫情事实报告(pyecharts)——可视化相关推荐
- 世界疫情实时动态 + pyecharts可视化
话不多说,世界疫情实时动态来啦 先进入腾讯网,按鼠标右键,点检查,再根据上图的步骤操作,点击第四个包,包的URL是 https://api.inews.qq.com/newsqa/v1/automat ...
- 毕业设计 基于python的疫情爬虫分析可视化系统
文章目录 0 前言 1 课题背景 2 实现效果 3 Flask框架 4 Echarts 5 爬虫 6 最后 0 前言
- 【Python】全网最新最全Pyecharts可视化教程(二):绘制好看的交互式地图教程
说到使用Python来进行地图的可视化那就一定少不了Pyecharts的身影,本文小编就对Pyecharts可实现的地图可视化进行一番探究,看看其出来的效果如何 1 Pyecharts-Map 首先要 ...
- python爬虫疫情可视化
学习了pyecharts后来小试牛刀下,来做一个中国疫情可视化 首先安装pyecharts库 1.可以直接在pycharm上装 2.也可以更快命令行装,win+r cmd pip install -i ...
- 利用python爬取2019-nCoV确诊数据并制作pyecharts可视化地图
1.本章利用python爬取2019-nCoV确诊数据并制作pyecharts可视化地图: 2.主要内容为绘制出中国各省疫情数据,疫情数据从四个维度进行可视化展示:累积确诊人数.现存确诊人数.治愈人数 ...
- Python爬虫爬取疫情数据并可视化展示
这篇文章主要介绍了Python利用爬虫爬取疫情数据并进行可视化的展示,文中的示例代码讲解清晰,对工作或学习有一定的价值,需要的朋友可以参考一下.编程资料点击领取 目录 知识点 开发环境 爬虫完整代码 ...
- python可视化图表分析---pyecharts库的使用
python可视化图表分析-pyecharts库的使用 前言 pyecharts官网https://pyecharts.org/ 简洁的 API 设计,使用如丝滑般流畅,支持链式调用 囊括了 30+ ...
- Python爬虫实战,pyecharts模块,Python实现中国地铁数据可视化
前言 利用Python实现中国地铁数据可视化.废话不多说. 让我们愉快地开始吧~ 开发工具 Python 版本:3.6.4 相关模块: requests模块; wordcloud模块; 熊猫模块; n ...
- python 的pyecharts可视化.柱形图和折线图的结合(2)
Exharts是百度开源的一个数据可视化的JS库,pyecharts是python和Echarts的一个接口 下面是柱形图和折线图的结合,可以从两种图看出不一样的东西 环境:pip install p ...
最新文章
- Lua 之string库
- java核心(十五):List、Set、Map功能分析
- 仅1年GitHub Star数翻倍,Flink 做了什么?
- 程序员数学基础【六、枚举 区块链,虚拟币种、币包约束,内环版本】(Java版本)
- 英雄联盟壁纸,你可以喜欢?
- Luogu P4139 上帝与集合的正确用法【扩展欧拉定理】By cellur925
- SQLServer - 约束
- POJ2826 An Easy Problem?!
- unable to connect to ssl://gateway.sandbox.push.apple.com:2195 错误
- 高等数学(第七版)同济大学 习题1-4 个人解答
- c语言程序ppt课件,c语言ppt课件
- CATIA V6 二次开发—概述
- SAP 中文小写金额转大写金额 amount in word(支持负数)
- 伪造邮件***,看我如何给网易邮箱APP发送垃圾邮件【二】
- 领导竟然在上班时间偷看这种网站...
- mongodb 10、mongodb从节点失联解决方法
- Sensing and Communication Tradeoff Design for AoI Minimization in a Cellular Internet of UAVs
- AIoT专业术语汇总
- 《深度学习,统计学习,数学基础》人工智能算法工程师手册
- springboot购物商城