版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于python的新冠疫情數(shù)據(jù)可視化分析設(shè)計(jì)目錄TOC\o"1-3"\h\u217461引言 2176241.1研究背景及意義 2189821.2研究流程 3211661.3關(guān)鍵技術(shù) 3269901.3.1爬蟲 3263891.3.2JSON 3285681.3.3HTML超文本語言 4153831.3.4ECharts和pyecharts 495211.3.5Flask 4153752疫情數(shù)據(jù)抓取與處理 518272.1數(shù)據(jù)來源 592962.2網(wǎng)絡(luò)爬蟲相關(guān)技術(shù) 623622.2.1網(wǎng)絡(luò)爬蟲流程 6158952.2.2反爬蟲技術(shù) 6271022.2.3疫情數(shù)據(jù)爬取 6265942.3數(shù)據(jù)處理分析 1021752.3.1數(shù)據(jù)處理 10150072.3.2數(shù)據(jù)存儲(chǔ) 11318812.3.3數(shù)據(jù)分析 12126363疫情數(shù)據(jù)可視化 13227503.1各可視化圖表 13121193.1.1中國各地區(qū)總確診人數(shù)——地圖 13102723.1.2世界各國今日確診人數(shù)——地圖 14244743.1.3確診人數(shù)前15的國家——柱狀圖 15205663.1.4中國當(dāng)日確診人數(shù)前15的省份——餅圖 166613.1.5近10天里中國的新增趨勢——線型圖 17165603.1.6中國、英國和美國疫情對(duì)比——柱狀圖 1885193.1.7中國累計(jì)治愈人數(shù)——詞云圖 1988233.1.8世界各國累計(jì)死亡人數(shù)——詞云圖 1969063.2全國疫情實(shí)時(shí)監(jiān)控顯示卡 20200743.3Flask展示 22270413.4疫情傳播現(xiàn)狀分析及建議 2346314系統(tǒng)測試 2367395總結(jié) 2427894參考文獻(xiàn) 25[摘要]對(duì)新型冠狀病毒肺炎感染的防控不僅是中國更是世界各國安全體系的重要“戰(zhàn)場”,對(duì)疫情的科學(xué)防控和精準(zhǔn)防控的重要前提措施是需要對(duì)疫情趨勢有一個(gè)正確的認(rèn)識(shí)。本文對(duì)新型冠狀病毒肺炎疫情的發(fā)展進(jìn)行了研究,整個(gè)設(shè)計(jì)都基于python語言,首先對(duì)新型冠狀病毒肺炎進(jìn)行了背景分析,接著尋找新冠肺炎疫情的數(shù)據(jù)源,然后通過爬蟲相關(guān)抓取技術(shù)從網(wǎng)易新聞網(wǎng)站和騰訊新聞網(wǎng)站等收集相關(guān)數(shù)據(jù),對(duì)所收集得到的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理、保存為.csv文件后將數(shù)據(jù)進(jìn)行可視化分析設(shè)計(jì),利用pyecharts圖表技術(shù)進(jìn)行全球疫情的可視化來展示各國、各地近期疫情的變化趨勢線型圖、累計(jì)確診人數(shù)柱狀圖等多種圖形,使用Flask結(jié)合HTML超文本語言進(jìn)行展示,讓人們更加直觀清晰地獲取疫情的關(guān)鍵信息、了解疫情形勢,為疫情防控提供直觀、形象的數(shù)據(jù)支持,并給出一定的防疫建議措施。 [關(guān)鍵詞]數(shù)據(jù)可視化;新冠肺炎;Python;疫情;網(wǎng)絡(luò)爬蟲;pyecharts1引言1.1研究背景及意義自從2019年年底新型冠狀病毒肺炎的爆發(fā),不僅給人們帶來了噩耗更是對(duì)人類的各方面都帶來了巨大的影響,特別是人類的生命安全和經(jīng)濟(jì)方面都面臨挑戰(zhàn)。直到今天疫情仍在蔓延,特別近期是在美國、印度等多國的新增病例數(shù)仍在不斷地增加,令人恐慌后怕的是印度近期的每日增長量竟高達(dá)二三十萬例,甚者三天就超出百萬例,我國多地區(qū)也在反復(fù)增加疫情病例數(shù),可想疫情的傳播發(fā)展是多么的可怕!所以對(duì)本課題的研究是很有必要的。本研究的主要做法是爬取新型冠狀病毒肺炎發(fā)展的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,對(duì)得到的結(jié)果進(jìn)行可視化展示,更為直觀地快速發(fā)現(xiàn)疫情傳播情況,分析全球新冠疫情傳播的特征,對(duì)疫情走勢進(jìn)行分析判斷,從而為中國政府及普通百姓對(duì)新冠肺炎疫情做出相應(yīng)的預(yù)防和對(duì)經(jīng)濟(jì)生產(chǎn)的恢復(fù)提供一定的參考,具有一定的研究意義,對(duì)疫情防控的指導(dǎo)有較高的理論價(jià)值。本設(shè)計(jì)選擇Python開源語言作為編程語言,所使用的版本為python3.8。它是一種簡單易學(xué),功能強(qiáng)大的編程語言,它有高效率的高層數(shù)據(jù)結(jié)構(gòu),簡單而有效地實(shí)現(xiàn)面向?qū)ο缶幊蘎EF_Ref27291\r\h[1]。python程序具有容易讀寫、容易維護(hù)和修改的特點(diǎn),因此受到了廣大使用戶的喜愛。同時(shí)python的編程語言也較為高級(jí),有著一些易于使用的數(shù)據(jù)功能,使人讓人們能夠很輕松地處理和生成大量的數(shù)據(jù)。本設(shè)計(jì)使用的編輯器是PyCharm,其版本是“PyCharmCommunityEdition2020.1.1x64”版,雖然是普通社區(qū)的版本,對(duì)于本設(shè)計(jì)而言足夠使用了。1.2研究流程本研究的研究流程:首先確定研究目的:本課題的研究目標(biāo)是設(shè)計(jì)實(shí)現(xiàn)一個(gè)基于python對(duì)新型冠狀病毒肺炎疫情的數(shù)據(jù)進(jìn)行可視化分析設(shè)計(jì)網(wǎng)頁。其次爬取數(shù)據(jù):尋找合適的恰當(dāng)?shù)臄?shù)據(jù)源,必須是國家權(quán)威機(jī)構(gòu)網(wǎng)站發(fā)布的數(shù)據(jù)。再使用爬蟲采集器采集這些網(wǎng)站上的疫情數(shù)據(jù)。然后使用Python開源編程語言將數(shù)據(jù)進(jìn)行預(yù)處理,并將最新數(shù)據(jù)及過往數(shù)據(jù)匯整,保存為.csv文件便于使用。接著對(duì)全球各地區(qū)的疫情數(shù)據(jù)進(jìn)行分析,使用多種合適的pyecharts圖表可視化技術(shù)手段進(jìn)行Flask展示,同時(shí)也結(jié)合了HTML超文本語言,使我們能夠更直觀、全面地分析疫情發(fā)展?fàn)顩r。最后觀察所得數(shù)據(jù)的特點(diǎn),結(jié)合pyecharts圖表分析疫情發(fā)展傳播的情況,為疫情防控提供直觀、形象的數(shù)據(jù)支持,進(jìn)而提出結(jié)論與一定的防疫建議措施。1.3關(guān)鍵技術(shù)1.3.1爬蟲網(wǎng)絡(luò)爬蟲又可以叫做網(wǎng)絡(luò)蜘蛛,在網(wǎng)絡(luò)上按照一定的算法和邏輯去抓取和下載網(wǎng)頁,按照人們的需求從網(wǎng)絡(luò)上抓取數(shù)據(jù),可以定義數(shù)據(jù)的保存方式,常見的保存方式是存到mysql數(shù)據(jù)庫、excel文件等。爬蟲的方式也有很多種,如正則表達(dá)式大法、requests-html、lxml的XPath等,本設(shè)計(jì)使用的是requests庫,然后將爬取的疫情數(shù)據(jù)存為了.csv文件。requests庫是獲取接口數(shù)據(jù)的。該方法能構(gòu)造一個(gè)向服務(wù)器請求資源的Request對(duì)象,并將響應(yīng)對(duì)象返回,該對(duì)象是ResPonse類型REF_Ref22019\r\h[2]。1.3.2JSON在本設(shè)計(jì)中是通過網(wǎng)絡(luò)爬蟲獲取疫情數(shù)據(jù)的,但得到的數(shù)據(jù)會(huì)是很雜亂無序的,不能夠直接使用,所以需要將數(shù)據(jù)用request庫接口去獲取,然結(jié)合Json工具來使用,讓疫情數(shù)據(jù)變成了Json的格式。Json格式的數(shù)據(jù)在查閱和編寫的時(shí)候都很方便,同時(shí)也可以更快速地使用。1.3.3HTML超文本語言超文本標(biāo)記語言Html(HyperTextMarkupLanguage)是一種格式化語言,它用“標(biāo)記”(tag)組成格式化命令來描述網(wǎng)頁內(nèi)容和外觀,指示W(wǎng)eb瀏覽器應(yīng)該如何顯示網(wǎng)頁元素,以及如何響應(yīng)使用者的操作REF_Ref23590\r\h[3]。本設(shè)計(jì)的腳本設(shè)計(jì)技術(shù)使用的是JavaScript,嵌入了多個(gè)js庫,如:中國地圖所需的china.js、詞云圖所需的wordcloud.min.js、各種圖表工具庫echarts.min.js等。對(duì)于HTML網(wǎng)頁的外觀布局設(shè)計(jì)可以用css模塊來指定樣式表。1.3.4ECharts和pyechartsECharts是一個(gè)使用JavaScript實(shí)現(xiàn)的開源可視化庫,提供直觀、交互豐富且可高度個(gè)性化定制的數(shù)據(jù)可視化圖表,適用于多種不同的可視化場景REF_Ref28886\r\h[4]。而pyecharts就是用于生成Echarts圖表的一個(gè)類庫。pyecharts能在flask等結(jié)合同時(shí)使用,也可以單獨(dú)生成HTML網(wǎng)頁。1.3.5FlaskFlask是用Python語言編寫的一個(gè)Web應(yīng)用程序框架,使得我們能用Python來快速完成一個(gè)Web服務(wù)器或者網(wǎng)站。首先需要導(dǎo)入一個(gè)flask庫,在實(shí)現(xiàn)flask前先創(chuàng)建兩個(gè)文件夾:static和templates,JS庫和CSS模塊等網(wǎng)站的外觀設(shè)計(jì)的文件要先放入static文件夾里,也要提前建好一個(gè)html文件index0.html放進(jìn)template文件夾里,這些放進(jìn)文件夾里的文件都需要提前編寫好。然后再建一個(gè).py文件app.py來實(shí)現(xiàn)flask展示,最后編寫相關(guān)的程序代碼:圖1創(chuàng)建Flask2疫情數(shù)據(jù)抓取與處理2.1數(shù)據(jù)來源對(duì)于這個(gè)可視化設(shè)計(jì)最重要的就是首先需要找到合適的可信的數(shù)據(jù)源,經(jīng)過尋找對(duì)比,本研究選擇了網(wǎng)易新聞網(wǎng)和騰訊新聞網(wǎng)的數(shù)據(jù)作為疫情數(shù)據(jù)源,這些數(shù)據(jù)都是來自各省市的政府和國家衛(wèi)健委等的公開數(shù)據(jù),具有一定的可信度、真實(shí)性,實(shí)時(shí)更新的時(shí)間也較為及時(shí)。本研究選擇了兩個(gè)新聞網(wǎng)的疫情數(shù)據(jù)還可以做一個(gè)對(duì)比,也能驗(yàn)證數(shù)據(jù)是否一致。網(wǎng)易新聞網(wǎng)的疫情數(shù)據(jù)和騰訊新聞網(wǎng)的數(shù)據(jù)網(wǎng)址分別為:/163/page/news/virus_report/index.html?_nw_=1&_anw_=1和/zt2020/page/feiyan.htm#/?nojump=1?;诰W(wǎng)易新聞網(wǎng)和騰訊新聞網(wǎng)的實(shí)時(shí)播報(bào)平臺(tái)尋找數(shù)據(jù),由于它是一個(gè)實(shí)時(shí)的動(dòng)態(tài)平臺(tái),因此數(shù)據(jù)一般在Network標(biāo)簽下可以找到,直接在瀏覽器中就可尋找數(shù)據(jù)源。不建議使用電腦自帶的瀏覽器,不僅卡頓,有延遲而且難找到數(shù)據(jù),GoogleChrome瀏覽器、QQ瀏覽器等是個(gè)不錯(cuò)的選擇。本研究使用的是QQ瀏覽器,查看數(shù)據(jù)源的大體步驟:在瀏覽器頁面的任意位置右擊,會(huì)出現(xiàn)一個(gè)選項(xiàng)卡,選擇“檢查”點(diǎn)擊進(jìn)去,會(huì)看到一個(gè)控制臺(tái),點(diǎn)擊“Network”標(biāo)簽下方的“XHR”,同時(shí)按住“Ctrl+R”組合見進(jìn)行刷新,所看到的就是對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)。在“Name”中就是各項(xiàng)數(shù)據(jù)結(jié)構(gòu),點(diǎn)擊“preview”就可以看到具體的數(shù)據(jù):圖2查看數(shù)據(jù)源2.2網(wǎng)絡(luò)爬蟲相關(guān)技術(shù)網(wǎng)絡(luò)爬蟲就是用規(guī)定的準(zhǔn)則去爬取各種網(wǎng)頁中用戶所需要的數(shù)據(jù),然后將數(shù)據(jù)根據(jù)自己的需求保存下來。2.2.1網(wǎng)絡(luò)爬蟲流程一般先指定一個(gè)或多個(gè)初始的URL作為種子,在不斷抓取網(wǎng)頁信息的過程中將爬取到的新URL存入U(xiǎn)RL訪問隊(duì)列中,在爬取完當(dāng)前網(wǎng)頁資源后從URL訪問隊(duì)列中調(diào)出一個(gè)再次進(jìn)行爬取,一直重復(fù)到滿足程序設(shè)計(jì)者的停止條件或者爬完URL隊(duì)列為止,爬取出的網(wǎng)頁資源會(huì)進(jìn)行一定的解析、篩選然后存儲(chǔ)入文件或數(shù)據(jù)庫中REF_Ref5171\r\h[5]。大概的網(wǎng)絡(luò)爬蟲過程如圖3:圖3爬蟲流程圖2.2.2反爬蟲技術(shù)通常情況下我們想要爬取一些數(shù)據(jù)時(shí)就會(huì)很密集地去訪問一個(gè)網(wǎng)址,特別是初學(xué)者對(duì)爬蟲技術(shù)不熟悉,又為了驗(yàn)證數(shù)據(jù)的正確性就會(huì)在短時(shí)間內(nèi)反復(fù)地去瀏覽一個(gè)網(wǎng)址,但因此也會(huì)很留下很多足跡,很可能被拉入黑名單,造成了被限制自己的ID,然后在短時(shí)間內(nèi)無法再進(jìn)此網(wǎng)址,數(shù)據(jù)也就爬取不了了。一些網(wǎng)站為了保護(hù)自己的數(shù)據(jù)權(quán)益也會(huì)增加反爬蟲技術(shù),但有技術(shù)的人員還是會(huì)有辦法去破解反爬蟲技術(shù)。反爬蟲技術(shù)也有很多種,比如:User-Agent控制請求、使用驗(yàn)證碼等。User-Agent中可以攜帶一串用戶設(shè)備信息的字符串,包括瀏覽器、操作系統(tǒng)、cpu等信息,我們可以通過在服務(wù)器設(shè)置user-agent白名單,只有符合條件的user-agent才能訪問服務(wù)REF_Ref11128\r\h[6]。2.2.3疫情數(shù)據(jù)爬取本設(shè)計(jì)爬取的是網(wǎng)易新聞網(wǎng)的疫情數(shù)據(jù),在爬取數(shù)據(jù)時(shí)首先要導(dǎo)入相關(guān)的庫,如requests庫,然后設(shè)置一個(gè)請求頭,要偽裝成一個(gè)瀏覽器,URL就是要爬取訪問的目標(biāo)地址,再使用requests發(fā)起請求開始爬取,相關(guān)代碼如圖4:圖4數(shù)據(jù)爬取查看請求狀態(tài)時(shí)運(yùn)行代碼返回“Response[200]”說明請求成功。爬取的內(nèi)容返回后的內(nèi)容是字符串,字符串的格式不方便我們進(jìn)行查看和分析,而且要爬取的數(shù)據(jù)很多,字符串長達(dá)幾十萬長度,所以考慮將字符串轉(zhuǎn)json格式,先要導(dǎo)入json庫,然后轉(zhuǎn)格式:data_json=json.loads(r.text)。經(jīng)觀察發(fā)現(xiàn)返回的json文件中的“data”列是研究所需的數(shù)據(jù),所以將“data”取出來:data=data_json['data'],得到的“data”數(shù)據(jù):圖5爬取的數(shù)據(jù)由以上數(shù)據(jù)可以看到里面都按類別存放著想要的疫情數(shù)據(jù):有歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù),還分國內(nèi)數(shù)據(jù)和世界各國數(shù)據(jù),用“areaTree”列表尋找世界各國的數(shù)據(jù),相關(guān)代碼如圖6:圖6areaTree列表按當(dāng)天疫情數(shù)據(jù)“today”和歷史所有疫情數(shù)據(jù)“total”提取出來,然后合并,將得到的數(shù)據(jù)封裝起來得到中國各省的當(dāng)天疫情數(shù)據(jù)“today_province”,關(guān)鍵代碼和數(shù)據(jù)輸出如圖7:圖7獲取today_province數(shù)據(jù)可以看到數(shù)據(jù)已經(jīng)按更新時(shí)間、今日確診病例數(shù)、今日治愈病例數(shù)等的每一列輸出了。以上是中國各省份的當(dāng)日數(shù)據(jù)“today_province”,即實(shí)時(shí)數(shù)據(jù),世界各國的實(shí)時(shí)數(shù)據(jù)爬取也是一樣的原理和方法。接下來看一下疫情歷史數(shù)據(jù)的爬取,在歷史數(shù)據(jù)中也包括了當(dāng)日的數(shù)據(jù),中國各省的歷史數(shù)據(jù)是先爬取其中一個(gè)省的數(shù)據(jù),本設(shè)計(jì)爬取數(shù)據(jù)時(shí)是以湖北省為例,每個(gè)省份都有自己的“id”,即行政代碼,各id對(duì)應(yīng)各省的名稱,其他省也可以使用這樣的方法遍歷來獲取數(shù)據(jù)代碼如圖8:圖8全國各省歷史數(shù)據(jù)爬取將得到的各省數(shù)據(jù)合并起來就可以得到中國各個(gè)省份的疫情歷史數(shù)據(jù)了。在數(shù)據(jù)輸時(shí)本設(shè)計(jì)設(shè)置了延遲一秒等待的時(shí)間,以免爬取速度過快導(dǎo)致IP被封,全國34個(gè)省的數(shù)據(jù)全部輸出大概需要70秒:圖9全國各省數(shù)據(jù)輸出世界各國和中國各省的歷史疫情數(shù)據(jù)的爬取方法是一樣的,同樣先以其中一個(gè)國家為例,這里選擇了意大利,像爬取中國數(shù)據(jù)的地址一樣爬取意大利的數(shù)據(jù)地址,然后像中國各省的id與之對(duì)應(yīng)的省份名稱一樣,世界各國也有各國家的編號(hào)id與之對(duì)應(yīng)的國家名稱,使之生成鍵值對(duì),遍歷獲取每一個(gè)國家的歷史疫情數(shù)據(jù),最后將爬取得到的各國數(shù)據(jù)合并在一起,就可以得到了世界各國的歷史疫情數(shù)據(jù)了。一共爬取了207個(gè)國家,大概累計(jì)花費(fèi)了310秒,即爬取世界各國疫情的歷史數(shù)據(jù)需要花費(fèi)五六分鐘。2.3數(shù)據(jù)處理分析2.3.1數(shù)據(jù)處理網(wǎng)頁上爬取得到的數(shù)據(jù)通常都是雜亂的、不完整的、不一致的,而數(shù)據(jù)預(yù)處理就可以改進(jìn)數(shù)據(jù)的質(zhì)量,從而提高數(shù)據(jù)的正確性和使用率。高質(zhì)量的數(shù)據(jù)在可視化時(shí)才可以得到更好的運(yùn)用,進(jìn)行了數(shù)據(jù)處理后的數(shù)據(jù)也便于對(duì)數(shù)據(jù)的存儲(chǔ),所以數(shù)據(jù)處理是很重要很必要的一步。數(shù)據(jù)的清洗可以使用Pandas庫,它提供了方便的類表格的統(tǒng)計(jì)操作和類SQL操作,同時(shí)還提供了強(qiáng)大的缺失值處理功能,使用數(shù)據(jù)預(yù)處理工作更加方便快捷REF_Ref1289\r\h[7]。本設(shè)計(jì)對(duì)數(shù)據(jù)的處理方式有:將字符串格式轉(zhuǎn)為json格式、導(dǎo)入了pandas庫等。用“DataFrame”以字典的格式生成數(shù)據(jù),將其傳入列表:圖10DataFrame生成數(shù)據(jù)也使用了“DataFrame”生成國家編號(hào)和國家名稱的鍵值對(duì),使國家名與其對(duì)應(yīng)數(shù)據(jù)一一對(duì)應(yīng),數(shù)據(jù)一體化清洗后的數(shù)據(jù)為全球范圍的疫情數(shù)據(jù)。2.3.2數(shù)據(jù)存儲(chǔ)數(shù)據(jù)儲(chǔ)存的方法有很多種:csv文件存儲(chǔ),關(guān)系型數(shù)據(jù)庫存儲(chǔ),本地Excel表儲(chǔ)存,JSON文件存儲(chǔ)等,本研究的數(shù)據(jù)是儲(chǔ)存為csv文件中的,將json轉(zhuǎn)化為csv文件,得到的數(shù)據(jù)也較為清晰明了,易于后期使用,在將每一條數(shù)據(jù)數(shù)據(jù)存入csv中也便于for循環(huán)的使用。將爬取得到的疫情數(shù)據(jù)存為csv文件,首先要定義一個(gè)數(shù)據(jù)的保存方法,如今日中國各省的疫情數(shù)據(jù)的保存“today_province”:圖11定義數(shù)據(jù)保存方法同時(shí)調(diào)用了“time”函數(shù),使用當(dāng)?shù)貢r(shí)間,保證數(shù)據(jù)實(shí)時(shí)更新,每運(yùn)行一次數(shù)據(jù)爬取的.py文件csv文件就會(huì)同步更新一次文件。其他文件也是同樣的保存方法,本設(shè)計(jì)分類名命保存了5個(gè)csv文件,分別是中國疫情歷史數(shù)據(jù)、中國各省疫情歷史數(shù)據(jù)、世界各國疫情歷史數(shù)據(jù)、中國各省今日疫情數(shù)據(jù)、世界各國今日疫情數(shù)據(jù):圖12得到的csv文件2.3.3數(shù)據(jù)分析將爬取得到的全球疫情數(shù)據(jù)經(jīng)過數(shù)據(jù)的過濾處理與整合得到中國各個(gè)省份、世界各個(gè)國家每一天的詳細(xì)疫情數(shù)據(jù)。爬蟲抓取的數(shù)據(jù)保存為5個(gè)csv文件,csv文件里的字段都是以英文名命的,其英譯也一目了然,以下展示的數(shù)據(jù)都是2021年4月24日下午六點(diǎn)多更新的疫情數(shù)據(jù)。(1)alltime_China.csv。如下圖:主要字段包括日期“date”、累計(jì)確診人數(shù)“total_confirm”、累計(jì)疑似人數(shù)“total_suspect”、累計(jì)治愈人數(shù)“total_heal”、今日確診人數(shù)“today_confirm”等。圖13alltime_China.csv(2)alltime_province.csv。主要字段包括日期“date”、累計(jì)確診人數(shù)“total_confirm”、今日新增疑似人數(shù)“today_suspect”、各省名稱“name”等。(3)alltime_world.csv。主要字段包括日期“date”、累計(jì)確診人數(shù)“total_confirm”、累計(jì)境外輸入人數(shù)“total_input”、今日死亡人數(shù)“today_dead”等。(4)today_province.csv。主要字段包括省名“name”、累計(jì)確診人數(shù)“total_confirm”、累計(jì)治愈人數(shù)“total_heal”、累計(jì)境外輸入人數(shù)“total_input”等,從全國疫情發(fā)展層面分析疫情數(shù)據(jù),便可清晰地觀我國目前疫情發(fā)展情況。(5)today_world.csv。主要字段包括國家名稱“name”、累計(jì)確診人數(shù)“total_confirm”、累計(jì)死亡人數(shù)“total_dead”、今日確診人數(shù)“today_confirm”等。3疫情數(shù)據(jù)可視化3.1各可視化圖表本設(shè)計(jì)使用pyecharts進(jìn)行的數(shù)據(jù)可視化分析設(shè)計(jì),其可以直接生成相應(yīng)的html文件,需要編寫時(shí)也可以直接在前端進(jìn)行編寫等操作,簡單的幾行代碼就可以將數(shù)據(jù)生成圖式多樣的Echarts圖表,而且本設(shè)計(jì)的數(shù)據(jù)都是動(dòng)態(tài)實(shí)時(shí)更新的。3.1.1中國各地區(qū)總確診人數(shù)——地圖可視化系統(tǒng)分析了新冠病毒的整體情況,本文選取了today_province.csv文檔的數(shù)據(jù),將全國各省名稱和各個(gè)省份的累計(jì)確診人數(shù)作為key和data,然后使用pyecharts繪制我國各地區(qū)總確診人數(shù)地圖,對(duì)數(shù)據(jù)大小進(jìn)行了顏色分段,顏色越深說明對(duì)應(yīng)省份的累計(jì)確診人數(shù)越高,對(duì)應(yīng)部分主要代碼如圖14:圖14作中國各地區(qū)總確診人數(shù)——地圖得到的可視化圖:圖15中國各地區(qū)總確診人數(shù)——地圖由此中國地圖可以看出湖北地區(qū)的顏色最深,截止到2021年4月24日湖北已經(jīng)累計(jì)確診新冠肺炎疫情病例數(shù)68157例了,西藏的確診病例數(shù)最少,到目前為止還是1例。3.1.2世界各國今日確診人數(shù)——地圖對(duì)today_world.csv文檔的數(shù)據(jù),將世界各國國名和各國今日的確診人數(shù)作為key和data來對(duì)比,然后使用pyecharts繪制世界各國今日確診人數(shù)世界地圖,也對(duì)數(shù)據(jù)大小進(jìn)行了顏色分段,顏色越深說明對(duì)應(yīng)國家今日的確診人數(shù)越高,得到的可視化圖:圖16世界各國今日確診人數(shù)——地圖由世界各國今日確診人數(shù)地圖可以看出美國、印度、巴西三個(gè)國家的顏色都是一樣的最深,日確診病例數(shù)已超5萬例,特別是印度的新冠肺炎日確診人數(shù)最為嚴(yán)重,2021年4月24日竟已高達(dá)346786例了,遠(yuǎn)超30萬,相當(dāng)駭人。中國24日的確診病例數(shù)為24例,說明疫情還沒戰(zhàn)勝,我們不能放松警惕。有一些國家不顯示數(shù)據(jù)是因?yàn)樵谂廊?shù)據(jù)的時(shí)候某一國家在24日沒有發(fā)布關(guān)與疫情的數(shù)據(jù),所以為空值。世界地圖比較特殊,只能識(shí)別英文的國家名稱,所以在使用時(shí)一定要將csv文件里的中文國家名轉(zhuǎn)為英文的,才會(huì)在地圖上顯示數(shù)據(jù)。3.1.3確診人數(shù)前15的國家——柱狀圖選擇了today_world.csv文檔中的世界各國總確診數(shù)據(jù)作為Y軸、各國名稱作為X軸制作一個(gè)柱狀圖,只顯示確診總?cè)藬?shù)前15的國家數(shù)據(jù),使用了sort排序的倒序,數(shù)據(jù)從大到小來排序,同時(shí)使用的datazoom組件的slider,數(shù)據(jù)較多時(shí)可以拖動(dòng)橫軸來觀察數(shù)據(jù),得到的可視化圖:圖17確診人數(shù)前15的國家——柱狀圖由此柱狀圖可以看到,世界各國累計(jì)確診總?cè)藬?shù)前15的國家從多到少分別為:美國、印度、巴西等國。截止到2021年4月24日美國竟已累計(jì)確診32735704例了,印度也高達(dá)16610481例了,還有巴西的確診人數(shù)也是超過了一千萬例了。3.1.4中國當(dāng)日確診人數(shù)前15的省份——餅圖選擇了today_province.csv文檔中的中國各省今日確診數(shù)據(jù)和各省名稱作為data和key制作一個(gè)餅圖顯示中國疫情確診最高的省份,只顯示了確診總?cè)藬?shù)的前15個(gè)省,使用了sort排序的倒序,數(shù)據(jù)從大到小來排序,在餅圖上顯示數(shù)據(jù)時(shí)用百分比顯示,更明了地看出各省份的當(dāng)日確診比例,得到的可視化圖:圖18中國當(dāng)日確診人數(shù)前15的省份——餅圖由餅圖可以看到,我國在2021年4月24日當(dāng)天的確診人數(shù)前15個(gè)省從高到低分別為:臺(tái)灣有11例,占37.93%;香港有9例,占31.03%;上海有3例,占10.34%;重慶、廣東、陜西、江蘇、云南、四川各1例,各占3.45%。說明我國的疫情還沒完全消滅,所以我們需要做好防疫準(zhǔn)備,共同抗議是我們每個(gè)人的責(zé)任。3.1.5近10天里中國的新增趨勢——線型圖選擇了alltime_China.csv文檔中的日期“data”列作為X軸,只取了最近10天的日期,然后用文檔中對(duì)應(yīng)日期的新增確診、新增疑似、新增境外輸入三個(gè)數(shù)據(jù)做為三條Y軸數(shù)據(jù),制作了一個(gè)線型圖,顯示近10日內(nèi)中國疫情的新增趨勢,得到的可視化圖:圖19近10天里中國的新增趨勢——線型圖由此線型圖可以看到,從2021年4月14日以來,我國的新冠肺炎確診的病例數(shù)都在20例以上;近10天里每一天都有境外輸入的疫情病例,基本上境外輸入線條的走勢和新增確診線條的走勢成正比,在2021年4月19日竟有19例境外輸入的病例;10天里有7天是存在疑似確診病例的,只有三天不存在疑似。3.1.6中國、英國和美國疫情對(duì)比——柱狀圖對(duì)美國、中國和英國的疫情進(jìn)行比較,以三個(gè)國家的國家名稱作為X軸,以各國的累計(jì)確診病例作為Y軸來制作一個(gè)柱狀圖,讀取alltime_world.csv文檔的數(shù)據(jù)來展示,本研究只顯示了近一周內(nèi)的數(shù)據(jù),得到的可視化圖:圖20中國、英國和美國疫情對(duì)比——柱狀圖由此柱狀圖可以看到,在2021年4月17日到2021年4月24日的近一周里美國的累計(jì)確診數(shù)都在三千二百萬例以上,英國的累計(jì)確診數(shù)在四百三十萬例到四百四十萬例以上,中國的累計(jì)確診人數(shù)在十萬零三千多例以上。由此可見美國的疫情爆發(fā)的很快也很嚴(yán)重,做好正確的防疫措施是很重要的,也能側(cè)面反映出我國政府的正確領(lǐng)導(dǎo)。3.1.7中國累計(jì)治愈人數(shù)——詞云圖選擇了today_province.csv文檔中的中國各省的肺炎疫情累計(jì)治愈總?cè)藬?shù)和各省名稱作為data和key制作了一個(gè)星型形狀的詞云圖來顯示中國的累計(jì)治愈人數(shù),省名占的位置比例越大說明此省份被治愈的病例數(shù)越多,得到的可視化圖:圖21中國累計(jì)治愈人數(shù)——詞云圖由此詞云圖可以看到,湖北的占比面積最大,截止到2021年4月24日累計(jì)被治愈了六萬三千六百四十例,廣西累計(jì)被治愈了二百六十五例。由這些累計(jì)被治愈的數(shù)據(jù)可以看出我國在面對(duì)肺炎疫情的抗戰(zhàn)是很成功的,也看到了我國政府領(lǐng)導(dǎo)對(duì)肺炎疫情的投入不惜一切,一切都將人民百姓的生命放第一位。3.1.8世界各國累計(jì)死亡人數(shù)——詞云圖選擇了today_world.csv文檔中的世界各國的肺炎疫情累計(jì)死亡總?cè)藬?shù)和各國國名作為data和key制作了一個(gè)詞云圖來顯示世界各國的累計(jì)死亡人數(shù),各國的國名占的位置比例越大說明此國因肺炎疫情而死亡的病例數(shù)越多,得到的可視化圖:圖22世界各國累計(jì)死亡人數(shù)——詞云圖由此詞云圖可以看到,美國的占比面積最大,截止到2021年4月24日因肺炎疫情而死亡的累計(jì)人數(shù)有五十八萬五千零七十五例,巴西累計(jì)死亡人數(shù)有三十八萬六千四百一十六例,中國累計(jì)死亡人數(shù)有四千八百五十七例。由這些累計(jì)死亡人數(shù)的數(shù)據(jù)可以看出美國的肺炎疫情累計(jì)確診病例數(shù)是最高的,死亡人數(shù)也是最多的,由此可以看出美國雖然是發(fā)達(dá)國家,經(jīng)濟(jì)大國,但對(duì)疫情的防護(hù)沒有得到很好的重視和對(duì)公民的保護(hù),相比于中國之下,可以由這些數(shù)據(jù)看出一個(gè)國家的一些政策,對(duì)人民的關(guān)心重視和人權(quán)平等。3.2全國疫情實(shí)時(shí)監(jiān)控顯示卡在templates文件夾內(nèi)的index0.html文件里設(shè)一個(gè)<frameset>標(biāo)簽,將index0.html一個(gè)頁面按rows分成兩個(gè)框架,一個(gè)是全國疫情實(shí)時(shí)監(jiān)控的顯示卡:index1.html,另一個(gè)是以上得到的可視化圖表整合為分頁組件:tab_base.html。index1.html文件是放在static文件夾里,此文件夾里還放著index1.html文件所需要的js1文件夾和css1文件夾,js1文件夾里的index.js文件就是獲取全國疫情實(shí)時(shí)監(jiān)控顯示卡數(shù)據(jù)的,數(shù)據(jù)源來自騰訊新聞網(wǎng),相關(guān)代碼:圖23獲取全國疫情實(shí)時(shí)監(jiān)控顯示卡數(shù)據(jù)并采用實(shí)時(shí)顯示,以確保獲取的疫情數(shù)據(jù)的時(shí)效性。將所得到的全國疫情實(shí)時(shí)監(jiān)控顯示卡與以上在網(wǎng)易新聞網(wǎng)所得到的數(shù)據(jù)進(jìn)行對(duì)比,證明所得到的數(shù)據(jù)是一樣的,說明數(shù)據(jù)的真實(shí)有效性更具說服力。如2021年4月24日我國的累計(jì)確診與“中國、英國和美國疫情對(duì)比——柱狀圖”24號(hào)的數(shù)據(jù)一致,我國的累計(jì)死亡數(shù)與“世界各國累計(jì)死亡人數(shù)——詞云圖”中國的累計(jì)治愈數(shù)一致等。所得到的全國疫情實(shí)時(shí)監(jiān)控顯示卡如圖24:圖24全國疫情實(shí)時(shí)監(jiān)控顯示卡3.3Flask展示Flask是一種微小的、成熟的且易于理解的PythonWeb框架,雖然體量微小但它具有極強(qiáng)的可擴(kuò)展性,Flask的核心吸引力在于其進(jìn)入門檻低,可以使開發(fā)變得簡單易行且無冗余功能REF_Ref16543\r\h[8]。本研究在進(jìn)行數(shù)據(jù)可視化時(shí)采用了Flask展示,首先導(dǎo)入Flask包,引用剛才Pyecharts返回生成的HTML文件,引用提前設(shè)好的網(wǎng)頁外觀設(shè)置html文件"index0.html"的代碼如圖25:圖25Flask配置提前設(shè)好展示的框架,即index0.html文件,在此html文件中引用所需要的.js文件,如地圖的js文件:中國地圖所需要的china.js等,如圖26:圖26index0.html代碼最后調(diào)用主函數(shù),就可啟動(dòng)應(yīng)用程序:if__name__=="__main__":app.run()。3.4疫情傳播現(xiàn)狀分析及建議由以上爬取得到的疫情數(shù)據(jù)和疫情數(shù)據(jù)可視化展示可以直觀明了地看出近期我國的確診病例又在增加了,中高風(fēng)險(xiǎn)地區(qū)也在增多,特別是臺(tái)灣、香港等地近期基本都有新增病例;國外地美國、巴西、印度的疫情還在劇增,得不到有效的控制,特別是印度的疫情數(shù)據(jù),令人毛骨悚然,近期每日的增長量竟高達(dá)二三十萬例,三天就破上百萬例!因疫情而死亡的病例數(shù)據(jù)更是不忍直視,更多的原因可能是印度的經(jīng)濟(jì)不發(fā)達(dá)、人口巨多、政府沒有好的應(yīng)對(duì)措施、人民健康得不到保障吧,愿早日戰(zhàn)勝這一場疫情之戰(zhàn)。疫情還沒結(jié)束,我們絕不能放松警惕,這是一場持久戰(zhàn),我們要盡可能地做到:注重自己的衛(wèi)生健康,多洗手,出門戴口罩,特別是不前往人多的公共場所,盡量不去人流量多的地方;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 秋人教版歷史與社會(huì)九年級(jí)上冊教學(xué)課件:2.3. 美國的資本主義改革
- 2026年南京鐵道職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試備考試題帶答案解析
- 牙醫(yī)創(chuàng)意活動(dòng)方案策劃(3篇)
- 青年讀書活動(dòng)策劃方案(3篇)
- 門店假期活動(dòng)策劃方案(3篇)
- 杜蕾斯廣告策劃活動(dòng)方案(3篇)
- 2026年重慶商務(wù)職業(yè)學(xué)院單招綜合素質(zhì)筆試備考試題帶答案解析
- 三年(2023-2025)湖南中考語文真題分類匯編:專題06 詩歌鑒賞(解析版)
- 福建省泉州市石獅第八中學(xué)2026年春季招聘教師參考題庫及答案1套
- 2026青海師大附中體育教師招聘參考題庫及答案1套
- 四川省成都市2024年七年級(jí)上學(xué)期期末數(shù)學(xué)模擬試卷6套【附參考答案】
- 消化內(nèi)科危重患者護(hù)理
- JTG D30-2015 公路路基設(shè)計(jì)規(guī)范
- 單位委托物業(yè)管理合同范本
- 訪問控制與審計(jì)監(jiān)控課件
- 寶石燒制瓷器工藝
- 閑置資產(chǎn)盤活利用方案
- 12345工作總結(jié)個(gè)人
- 高中地理第一學(xué)期期中試卷湘教版必修1
- 測定直流電源的參數(shù)并研究其輸出特性
- 2021年云南公務(wù)員考試行測試題及答案
評(píng)論
0/150
提交評(píng)論