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

手把手教你用Python獲取新冠疫情數據并進行可視化

開發 后端
“中國(疫苗研發)非常困難,因為在中國我們沒有辦法做第三期臨床試驗,因為沒有病人了。”今天讓我們用數據來看看這句話是不是“凡爾賽”本賽。在開始之前我們先來說說今天要用到的python庫吧!

[[411117]]

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

前言

不知道大伙有沒有看到過這一句話:“中國(疫苗研發)非常困難,因為在中國我們沒有辦法做第三期臨床試驗,因為沒有病人了。”這句話是中國工程院院士鐘南山在上海科技大學2021屆畢業典禮上提出的。這句話在全網流傳,被廣大網友稱之為“凡爾賽”發言。

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

1.數據獲取部分

  1. requests lxml json openpyxl 

2.數據可視化部分

  1. pandas pyecharts(可視化庫) 

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

  1. pip instll xx 

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

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

現在一起進入今天的代碼部分吧!!!

數據獲取

目標地址:

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

進入目標地址我們可以看到如下所示:

現在讓我們一起去解析網頁結構找到我們要爬取到的數據如下所示:

現在我們找到想要的頁面數據接下來就是通過Python來獲取這些數據了,上代碼:

  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的時候要用樹形態 
  12. html = etree.HTML(response) 
  13. #用xpath來獲取我們之前找到的頁面json數據  并打印看看 
  14. json_text = html.xpath('//script[@type="application/json"]/text()'
  15. json_text = json_text[0] 
  16. # print(json_text) 

之后我們來解析一下json數據,上代碼:

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

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

  1. # 創建工作簿 
  2. wb = openpyxl.Workbook() 
  3. # 創建工作表 
  4. ws = wb.active 
  5. # 設置表的標題 
  6. ws.title = "國內疫情" 
  7. # 寫入表頭 
  8. ws.append(["省份","累計確診","死亡","治愈"]) 
  9. #獲取各省份的數據并寫入 
  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'

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

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

數據可視化

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

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

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

  1. # 設置列對齊 
  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. # 對省份進行統計 
  7. data2 = df['省份'
  8. data2_list = list(data2) 
  9. data3 = df['累計確診'
  10. data3_list = list(data3) 
  11. data4 = df['死亡'
  12. data4_list = list(data4) 
  13. data5 = df ['治愈'
  14. data5_list = list(data5) 

接著我們來做數據可視化,將在我國地圖上的各個省份顯示出對應的數值

我們以疫情發生以來治愈數為例,上代碼:

  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() 

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

  1. a = ( 
  2.     Map() 
  3.         .add("累計確診", [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() 

當然如果是直接運行代碼的話展現出來的地圖不是這樣的,這個是通過后期的排版來完成的。那么在最后我們來說說是怎么排版的吧。

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

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

這樣以后會產生一個my_test.html這個文件就是我們上面展示的那樣啦。

結束語

以上就是我們這次的結果。從數據的獲取到數據可視化,怎么說呢pyecharts還具有其他強大的可視化功能。

 

責任編輯:姜華 來源: Python爬蟲與數據挖掘
相關推薦

2020-12-17 09:40:01

Matplotlib數據可視化命令

2021-08-26 09:00:48

PyechartsPython可視化

2021-08-09 13:31:25

PythonExcel代碼

2022-07-24 21:43:48

數據可視化大數據

2021-05-10 06:48:11

Python騰訊招聘

2022-10-19 14:30:59

2020-03-08 22:06:16

Python數據IP

2023-02-01 10:16:50

Python可視化

2021-12-11 20:20:19

Python算法線性

2021-02-02 13:31:35

Pycharm系統技巧Python

2020-11-08 14:13:31

Python帕累托分析開發

2022-08-04 10:39:23

Jenkins集成CD

2011-03-28 16:14:38

jQuery

2021-02-06 14:55:05

大數據pandas數據分析

2021-02-04 09:00:57

SQLDjango原生

2009-04-22 09:17:19

LINQSQL基礎

2021-05-17 21:30:06

Python求均值中值

2012-01-11 13:40:35

移動應用云服務

2021-08-02 23:15:20

Pandas數據采集

2021-01-21 09:10:29

ECharts柱狀圖大數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜精品一区 | 亚洲电影一区二区三区 | 欧美一区二区免费 | 日韩网站在线观看 | 国内精品视频在线观看 | 久久久www| 国产精品久久久亚洲 | 99国产精品久久久久 | 一区二区国产精品 | 毛片免费观看视频 | 国产高清精品一区二区三区 | 国产美女在线观看 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 国产欧美精品 | 国产黄色在线观看 | 久久精品国产99国产精品 | 日p视频免费看 | 国产综合精品一区二区三区 | 在线观看www | 在线视频一区二区三区 | 亚洲精品68久久久一区 | 国产精品区一区二区三 | 日本电影网站 | 国产高清精品在线 | 激情欧美日韩一区二区 | 日韩欧美在线不卡 | 国产电影一区二区在线观看 | 欧美另类视频 | 亚洲小视频 | 国产激情视频网址 | 亚洲精品黑人 | 一区二区三区久久久 | 日韩精品久久久久久 | av免费网站在线观看 | 四虎国产 | 国产福利在线视频 | 成人免费视频一区 | 黄色网址在线免费观看 | 日韩视频三区 | 精品日韩 | 视频在线一区二区 |