成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你用Python獲取新冠疫情數(shù)據(jù)并進(jìn)行可視化

開發(fā) 后端
“中國(疫苗研發(fā))非常困難,因?yàn)樵谥袊覀儧]有辦法做第三期臨床試驗(yàn),因?yàn)闆]有病人了。”今天讓我們用數(shù)據(jù)來看看這句話是不是“凡爾賽”本賽。在開始之前我們先來說說今天要用到的python庫吧!

[[411117]]

Hello,大家好。我叫“小屁孩i”。

前言

不知道大伙有沒有看到過這一句話:“中國(疫苗研發(fā))非常困難,因?yàn)樵谥袊覀儧]有辦法做第三期臨床試驗(yàn),因?yàn)闆]有病人了。”這句話是中國工程院院士鐘南山在上海科技大學(xué)2021屆畢業(yè)典禮上提出的。這句話在全網(wǎng)流傳,被廣大網(wǎng)友稱之為“凡爾賽”發(fā)言。

今天讓我們用數(shù)據(jù)來看看這句話是不是“凡爾賽”本賽。在開始之前我們先來說說今天要用到的python庫吧!

1.數(shù)據(jù)獲取部分

  1. requests lxml json openpyxl 

2.數(shù)據(jù)可視化部分

  1. pandas pyecharts(可視化庫) 

以上的庫都可以通過在線下載:

  1. pip instll xx 

ps:如果下載速度太慢的話也可以用國內(nèi)鏡像,使用命令,例如:

  1. pip install xx(庫名) -i https://pypi.tuna.tsinghua.edu.cn/simple gevent(清華鏡像) 

現(xiàn)在一起進(jìn)入今天的代碼部分吧!!!

數(shù)據(jù)獲取

目標(biāo)地址:

https://voice.baidu.com/act/newpneumonia/newpneumonia

進(jìn)入目標(biāo)地址我們可以看到如下所示:

現(xiàn)在讓我們一起去解析網(wǎng)頁結(jié)構(gòu)找到我們要爬取到的數(shù)據(jù)如下所示:

現(xiàn)在我們找到想要的頁面數(shù)據(jù)接下來就是通過Python來獲取這些數(shù)據(jù)了,上代碼:

  1. import requests 
  2. from lxml import etree 
  3. import json 
  4. import openpyxl 
  5.  
  6. #通用爬蟲 
  7. url = 'https://voice.baidu.com/act/newpneumonia/newpneumonia' 
  8. headers = { 
  9.     "User-Agent"".....(換成自己的)" 
  10. response = requests.get(url=url,headers=headers).text 
  11. #在使用xpath的時(shí)候要用樹形態(tài) 
  12. html = etree.HTML(response) 
  13. #用xpath來獲取我們之前找到的頁面json數(shù)據(jù)  并打印看看 
  14. json_text = html.xpath('//script[@type="application/json"]/text()'
  15. json_text = json_text[0] 
  16. # print(json_text) 

之后我們來解析一下json數(shù)據(jù),上代碼:

  1. #用python本地自帶的庫轉(zhuǎn)換一下json數(shù)據(jù) 
  2. result = json.loads(json_text) 
  3. # print(result) 
  4. #通過打印出轉(zhuǎn)換的對象我們可以看到我們要的數(shù)據(jù)都要key為component對應(yīng)的值之下  所以現(xiàn)在我們將值拿出來 
  5. result = result["component"
  6. #再次打印看看結(jié)果 
  7. # print(result) 
  8. # 獲取國內(nèi)當(dāng)前數(shù)據(jù) 
  9. result = result[0]['caseList'
  10. # print(result) 

接著我們將獲取到的數(shù)據(jù)保存到excel中,上代碼:

  1. # 創(chuàng)建工作簿 
  2. wb = openpyxl.Workbook() 
  3. # 創(chuàng)建工作表 
  4. ws = wb.active 
  5. # 設(shè)置表的標(biāo)題 
  6. ws.title = "國內(nèi)疫情" 
  7. # 寫入表頭 
  8. ws.append(["省份","累計(jì)確診","死亡","治愈"]) 
  9. #獲取各省份的數(shù)據(jù)并寫入 
  10. for line in result: 
  11.     line_name = [line["area"],line["confirmed"],line["died"],line["crued"]] 
  12.     for ele in line_name: 
  13.         if ele == ''
  14.             ele = 0 
  15.     ws.append(line_name) 
  16. #保存到excel中 
  17. wb.save('./china.xlsx'

最后我們查看一下獲取到的數(shù)據(jù)是什么樣的,如圖:

emmmm,終于我們把數(shù)據(jù)獲取部分完成了,第二部分的數(shù)據(jù)可視化來了!!!

數(shù)據(jù)可視化

這次我們用到的庫是pyecharts里面的Map,我們先展示一下本次可視化用到的庫

  1. #可視化部分 
  2. import pandas  as pd 
  3. from pyecharts.charts import Map,Page 
  4. from pyecharts import options as opts 

首先我們要先通過pandas庫來獲取到剛才我們爬取到的數(shù)據(jù),上代碼:

  1. # 設(shè)置列對齊 
  2. pd.set_option('display.unicode.ambiguous_as_wide'True
  3. pd.set_option('display.unicode.east_asian_width'True
  4. # 打開文件 
  5. df = pd.read_excel('china.xlsx'
  6. # 對省份進(jìn)行統(tǒng)計(jì) 
  7. data2 = df['省份'
  8. data2_list = list(data2) 
  9. data3 = df['累計(jì)確診'
  10. data3_list = list(data3) 
  11. data4 = df['死亡'
  12. data4_list = list(data4) 
  13. data5 = df ['治愈'
  14. data5_list = list(data5) 

接著我們來做數(shù)據(jù)可視化,將在我國地圖上的各個(gè)省份顯示出對應(yīng)的數(shù)值

我們以疫情發(fā)生以來治愈數(shù)為例,上代碼:

  1. c = ( 
  2.     Map() 
  3.         .add("治愈", [list(z) for z in zip(data2_list, data5_list)], "china"
  4.         .set_global_opts( 
  5.         title_opts=opts.TitleOpts(), 
  6.         visualmap_opts=opts.VisualMapOpts(max_=200), 
  7.     ) 
  8. c.render() 

當(dāng)然僅僅一個(gè)治愈情況當(dāng)然說明不了什么,所以我們將三種情況都以這種形式顯示出來,上代碼:

  1. a = ( 
  2.     Map() 
  3.         .add("累計(jì)確診", [list(z) for z in zip(data2_list, data3_list)], "china"
  4.         .set_global_opts( 
  5.         title_opts=opts.TitleOpts(), 
  6.         visualmap_opts=opts.VisualMapOpts(max_=200), 
  7.     ) 
  8.  
  9. b = ( 
  10.     Map() 
  11.         .add("死亡", [list(z) for z in zip(data2_list, data4_list)], "china"
  12.         .set_global_opts( 
  13.         title_opts=opts.TitleOpts(), 
  14.         visualmap_opts=opts.VisualMapOpts(max_=200), 
  15.     ) 
  16.  
  17. c = ( 
  18.     Map() 
  19.         .add("治愈", [list(z) for z in zip(data2_list, data5_list)], "china"
  20.         .set_global_opts( 
  21.         title_opts=opts.TitleOpts(), 
  22.         visualmap_opts=opts.VisualMapOpts(max_=200), 
  23.     ) 
  24.  
  25. page = Page(layout=Page.DraggablePageLayout) 
  26. page.add
  27.     a, 
  28.     b, 
  29.     c, 
  30. # 先生成render.html文件 
  31. page.render() 

當(dāng)然如果是直接運(yùn)行代碼的話展現(xiàn)出來的地圖不是這樣的,這個(gè)是通過后期的排版來完成的。那么在最后我們來說說是怎么排版的吧。

首先你先將上面的代碼運(yùn)行之后會產(chǎn)生一個(gè)render.html的文件然后你打開文件之后可以調(diào)整整個(gè)頁面的布局,根據(jù)自己的喜歡來調(diào)整,接著點(diǎn)擊左上角的“Save Config”將這個(gè)json文件保存到跟render.html這個(gè)文件同一個(gè)路徑之下,最后運(yùn)行一下代碼:

  1. #完成上一步之后把 page.render()這行注釋掉 
  2. # 然后循行這下面 
  3. Page.save_resize_html("render.html"
  4.     cfg_file="chart_config.json"
  5.     dest="my_test.html"

這樣以后會產(chǎn)生一個(gè)my_test.html這個(gè)文件就是我們上面展示的那樣啦。

結(jié)束語

以上就是我們這次的結(jié)果。從數(shù)據(jù)的獲取到數(shù)據(jù)可視化,怎么說呢pyecharts還具有其他強(qiáng)大的可視化功能。

 

責(zé)任編輯:姜華 來源: Python爬蟲與數(shù)據(jù)挖掘
相關(guān)推薦

2020-12-17 09:40:01

Matplotlib數(shù)據(jù)可視化命令

2021-08-26 09:00:48

PyechartsPython可視化

2021-08-09 13:31:25

PythonExcel代碼

2022-07-24 21:43:48

數(shù)據(jù)可視化大數(shù)據(jù)

2021-05-10 06:48:11

Python騰訊招聘

2022-10-19 14:30:59

2020-03-08 22:06:16

Python數(shù)據(jù)IP

2023-02-01 10:16:50

Python可視化

2021-02-02 13:31:35

Pycharm系統(tǒng)技巧Python

2021-12-11 20:20:19

Python算法線性

2020-11-08 14:13:31

Python帕累托分析開發(fā)

2011-03-28 16:14:38

jQuery

2021-02-04 09:00:57

SQLDjango原生

2021-02-06 14:55:05

大數(shù)據(jù)pandas數(shù)據(jù)分析

2022-08-04 10:39:23

Jenkins集成CD

2009-04-22 09:17:19

LINQSQL基礎(chǔ)

2021-05-17 21:30:06

Python求均值中值

2021-01-21 09:10:29

ECharts柱狀圖大數(shù)據(jù)

2021-01-08 10:32:24

Charts折線圖數(shù)據(jù)可視化

2012-01-11 13:40:35

移動應(yīng)用云服務(wù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本大片在线播放 | 伊人精品在线视频 | 日韩免费网站 | 国产欧美一区二区三区在线看蜜臀 | 91av视频 | 一级黄色影片在线观看 | 久草综合在线视频 | 成人在线免费观看 | 成人一区二区三区在线观看 | 亚洲天堂中文字幕 | 日韩一区二区三区av | 色又黄又爽网站www久久 | 成人久久 | 久久99精品久久久久久秒播九色 | 亚洲一二三区精品 | 国产99久久精品一区二区永久免费 | 在线观看亚洲 | 亚洲午夜网 | 一级美国黄色片 | 国内精品久久精品 | 亚洲一级毛片 | 亚洲国产成人av好男人在线观看 | 日本福利一区 | 国产精品美女久久久久久免费 | 天天干b | 国产欧美一区二区三区日本久久久 | 午夜小视频在线播放 | 日韩精品二区 | 夜夜爆操 | www.国产精品 | www.黄色在线观看 | 在线看91 | 2018国产大陆天天弄 | 亚洲字幕在线观看 | 久久久久久久国产 | 亚洲天堂久久 | 欧美精品一区二区三区一线天视频 | 国产在线一区二区三区 | 久久久精品影院 | 99精品久久久久久久 | 久久里面有精品 |