基于Python的疫情數(shù)據(jù)可視化
有任何學(xué)習(xí)問題可以加我微信交流哦!bmt1014
1、項目需求分析
1.1背景
2020年,新冠肺炎疫情在全球范圍內(nèi)爆發(fā),給人們的健康和生命帶來了嚴(yán)重威脅,不同國家和地區(qū)的疫情形勢也引起了廣泛的關(guān)注。疫情數(shù)據(jù)的監(jiān)測和分析對疫情防控和科學(xué)防治至關(guān)重要。本報告以疫情數(shù)據(jù)為基礎(chǔ),通過可視化數(shù)據(jù)分析的方式,呈現(xiàn)了全球和國內(nèi)疫情的發(fā)展趨勢和變化情況,幫助人們更加直觀、全面地了解疫情的實際情況,為全社會、政府和民眾做好疫情防控和處置提供參考依據(jù)。
1.2數(shù)據(jù)來源
這個數(shù)據(jù)是從世界衛(wèi)生組織(WHO)網(wǎng)站上獲取的,包含了截至特定日期全球范圍內(nèi)COVID-19病例和死亡人數(shù)的統(tǒng)計數(shù)據(jù)。
數(shù)據(jù)特征說明:
Date_reported:報告日期
Country_code:國家/地區(qū)縮寫代碼
Country:國家/地區(qū)名稱
WHO_region:世衛(wèi)組織區(qū)域
New_cases:新確診病例數(shù)
Cumulative_cases:累計確診病例數(shù)
New_deaths:新死亡人數(shù)
Cumulative_deaths:累計死亡人數(shù)
這些變量提供了有關(guān)全球COVID-19疫情的基本統(tǒng)計信息。對于每個國家,報告日期、累計和每日新增病例數(shù)和死亡人數(shù)都提供了詳細(xì)的統(tǒng)計數(shù)據(jù)
部分?jǐn)?shù)據(jù)如圖:
1.3具體目標(biāo)
[任務(wù)1]使用基本圖展示中國疫情狀況
[任務(wù)2]使用折線圖展示五常國新增確診趨勢
[任務(wù)3]使用動圖展示每天新增確診數(shù)TOP10國家
[任務(wù)4]使用環(huán)形圖展示七大洲疫情狀況
[任務(wù)5]使用動態(tài)地圖展示全球每個月新增人數(shù)
[任務(wù)6]使用大屏可視化作圖分析
2、總體設(shè)計
2.1本次實驗所用環(huán)境
(1)windows10系統(tǒng)
(2)PyCharm Community Edition 2022.2.1軟件
(3)Python版本: 3.8
(4)Anaconda和Jupyter Notebook
2.2 可視化方案
1、對任務(wù)一、二、三采用matplotlib可視化庫對疫情數(shù)據(jù)作展示,主要有柱狀圖、折線圖、條形圖、環(huán)形圖。
2、對任務(wù)四、五、六采用pyecharts可視化庫,主要有動態(tài)地圖、以及餅圖,柱狀圖等其他基本圖形作大屏可視化展示。
3、詳細(xì)設(shè)計
任務(wù)一 使用基本圖展示中國疫情狀況
(1)擬采用的技術(shù)
擬采用motplotlib的柱狀圖繪制功能展示我國疫情的柱狀圖;為了便于數(shù)據(jù)觀察,分別采用了我國各省的感染人數(shù)條形圖和我國總體感染人數(shù)和死亡人數(shù)柱狀圖
(2)任務(wù)一源程序
任務(wù)二 使用折線圖展示五常國新增確診趨勢
(1)擬采用的技術(shù)
擬采用motplotlib的柱狀圖繪制功能展示五常國家疫情的趨勢折線圖;為了便于數(shù)據(jù)觀察,分別采用了五個顏色和折現(xiàn)展示疫情趨勢。
(2)源程序
任務(wù)三 使用動圖展示每天新增確診數(shù)TOP10國家
(1)擬采用的技術(shù)
這段代碼主要利用了Pandas庫對數(shù)據(jù)進(jìn)行處理和分析,利用Matplotlib庫繪制圖表,并利用Matplotlib動畫功能展示數(shù)據(jù)的變化過程,同時使用了datetime庫進(jìn)行日期和時間處理,以及字符串格式化功能將數(shù)據(jù)格式化成指定的字符串格式。
(2)源程序
任務(wù)四 使用環(huán)形圖展示七大洲疫情狀況
子任務(wù)1:使用環(huán)形圖展示七大洲疫情狀況
(1)擬采用的技術(shù)
這段代碼主要利用了Pandas庫對數(shù)據(jù)進(jìn)行處理和分析,利用Matplotlib庫繪制圖表,并利用Matplotlib子圖和圓環(huán)功能展示多個環(huán)形圖,同時使用了字典和Lambda函數(shù)進(jìn)行數(shù)據(jù)處理,以及字符串格式化功能將數(shù)據(jù)格式化成指定的字符串格式。
(2)源程序
子任務(wù)2:使用玫瑰圖展示世界前十名國家死亡率玫瑰圖
(1)擬采用的技術(shù)
擬采用Pandas庫對數(shù)據(jù)進(jìn)行處理和分析,利用pyecharts庫繪制圖表,使用pyecharts庫繪制南丁格爾玫瑰圖,通過set_series_opts方法設(shè)置扇形的屬性,最終生成可視化圖表。在繪圖過程中,還使用了一些pyecharts庫提供的選項,如設(shè)置內(nèi)外半徑比例、圖表中心位置、南丁格爾玫瑰圖的類型等
(2)源程序
任務(wù)五:使用動態(tài)地圖展示全球每個月新增人數(shù)
(1)擬采用的技術(shù)
主要利用Map地圖和Timeline時間軸兩種圖表類型,將每個國家的新增人數(shù)展現(xiàn)在地圖上,并通過時間軸實現(xiàn)數(shù)據(jù)的動態(tài)展示功能。
代碼中使用pandas庫對CSV文件進(jìn)行讀取和數(shù)據(jù)處理,進(jìn)一步利用numpy庫、datetime庫、collections庫、matplotlib庫等處理數(shù)據(jù)和繪制圖表;使用pyecharts庫創(chuàng)建Map和Timeline圖表并配置相應(yīng)的參數(shù),最終生成可交互的HTML網(wǎng)頁。
具體實現(xiàn)過程為:首先讀取CSV文件,并刪除不必要的列信息,隨后對數(shù)據(jù)進(jìn)行清洗和處理得到每個月份各國家的新增確診人數(shù)信息;然后,利用pyecharts庫中的Map和Timeline類別函數(shù)進(jìn)行地圖和時間軸圖表的創(chuàng)建,并通過add()方法添加相應(yīng)的數(shù)據(jù)序列, add_schema()方法和set_global_opts()方法設(shè)置相關(guān)的全局參數(shù)進(jìn)行控制。最終,組合成一個時間軸對象,從而實現(xiàn)動態(tài)圖表的展示效果。
(2)源程序
任務(wù)六:使用大屏可視化作圖分析
(1)擬采用的技術(shù)
主要通過柱狀圖、地圖、餅圖、折線圖、漏斗圖等多種形式展現(xiàn)疫情數(shù)據(jù)的不同維度和特征,首先通過pandas庫讀取3個CSV文件,包括每日新增確診人數(shù)、累積確診人數(shù)以及WHO公布的全球疫情數(shù)據(jù)。然后,通過pyecharts庫實現(xiàn)了6個圖表的可視化。
4、運(yùn)行結(jié)果與結(jié)果分析
任務(wù)一 使用基本圖展示中國疫情狀況
(1)運(yùn)行結(jié)果
(2)結(jié)果分析
條形圖展示我國1月26日當(dāng)天全國各省感染人數(shù)條形圖,可見當(dāng)日湖北感染人數(shù)眾多,其余省份均在200人以下
(1)運(yùn)行結(jié)果
(2)結(jié)果分析
使用柱狀堆疊圖制我國2月疫情柱狀圖,藍(lán)色部分為感染人數(shù),橙色部分為死亡人數(shù)。從數(shù)據(jù)中說明感染人數(shù)逐日增加,增幅較大。死亡人數(shù)增幅較小,說明我國疫情2月傳播控制較差,但死亡人數(shù)控制的較好。
任務(wù)二 使用折線圖展示五常國新增確診趨勢
(1)運(yùn)行結(jié)果
(2)結(jié)果分析
圖中顯示了2020年1月22日到2020年3月22日間,五常國家的疫情新增確診人數(shù)的趨勢圖。圖中展示了在1-3月期間中國的疫情新增幅度最大。其余四個國家增幅較慢,但在2020年3月8日后開始迅速增加。
任務(wù)三 使用動圖展示每天新增確診數(shù)TOP10國家
(1)運(yùn)行結(jié)果
(2)結(jié)果分析
此圖展示的是2020/3/20日和2020/3/22日全球新冠疫情新增感染數(shù)排名前十的國家,可以看出感染趨勢是逐漸上漲的
任務(wù)四 使用環(huán)形圖展示七大洲疫情狀況
子任務(wù)1:使用環(huán)形圖展示七大洲疫情狀況
(1)運(yùn)行結(jié)果
(2)結(jié)果分析
此圖展示了七大洲國家的疫情情況環(huán)形圖,有新增感染率、痊愈率和死亡率??梢钥吹絹喼迖业娜氏噍^其他洲是比較高的
子任務(wù)2:玫瑰圖展示死亡率前十國家
(1)運(yùn)行結(jié)果
(2)結(jié)果分析
此圖展示了全世界死亡率排名前十的國家,此數(shù)據(jù)是截止到2020年三月份的數(shù)據(jù),所以可以看到中國的死亡率較高
任務(wù)五 使用動態(tài)地圖展示全球每個月新增人數(shù)
(1)運(yùn)行結(jié)果
(2)結(jié)果分析
通過該動態(tài)地圖,我們可以清楚地觀察到整個2020年全球COVID-19的各國新增確診人數(shù)的變化趨勢。由于該地圖是按月份展示,因此我們可以看到在不同的月份里,哪些國家的新增人數(shù)較多,哪些國家較少,以及某些疫情爆發(fā)嚴(yán)重的國家的疫情是否有所緩解等。此外, 你還可以放置鼠標(biāo)在相應(yīng)的國家上,查看它的具體新增確診人數(shù)。
任務(wù)六 使用大屏可視化作圖分析
(1)運(yùn)行結(jié)果
(2)結(jié)果分析
新增確診人數(shù)柱狀圖(時間軸):該圖表用來展示自 2020.01.22 至 2020.03.33 期間的每日新增確診人數(shù),并且每隔三天對新增人數(shù)進(jìn)行一次累計。通過觀察這張圖表,我們可以看出新冠病毒傳播速度的快慢以及其傳播高峰期的發(fā)生時間。
累計確診、死亡和治愈人數(shù)柱狀圖:該圖表用來展示不同國家的累計確診、死亡和治愈人數(shù)情況。通過比較各國的數(shù)據(jù),我們可以得到這些國家在全球疫情中的貢獻(xiàn)情況。
各國新增病例地圖(時間軸):該圖表通過地圖展示了自 2020.01.02 起,全球每個月的新增病例數(shù)。通過這張地圖,我們可以知道自疫情爆發(fā)起,全球的新增病例在不斷擴(kuò)散,趨勢比較明顯,且歐美地區(qū)新增病例數(shù)明顯高于亞洲地區(qū)。
5、項目結(jié)論與建議
通過對新冠肺炎疫情數(shù)據(jù)的處理和分析,得出了以下結(jié)論:
使用Python的數(shù)據(jù)可視化庫Pyecharts對COVID-19疫情數(shù)據(jù)集進(jìn)行了可視化展示。通過基本圖、折線圖、動圖、環(huán)形圖和地圖等多種視圖工具,直觀地展現(xiàn)了中國、五常國、七大洲以及全球每個月新增確診人數(shù)的疫情狀況。
在制作可視化時,需要根據(jù)不同的任務(wù)選擇合適的可視化方式。比如展示中國疫情狀況時可以采用柱狀圖或堆疊圖,而使用折線圖可以清晰的展示五常國新增確診趨勢。使用動圖來展示每天新增確診數(shù)TOP10國家則可以更好地體現(xiàn)數(shù)值變化和差異;使用環(huán)形圖展示七大洲疫情狀況能一目了然地比較不同大洲的疫情情況;使用動態(tài)地圖展示全球每個月新增人數(shù),容易發(fā)現(xiàn)不同國家新增確診人數(shù)的空間分布狀態(tài)。
6、大作業(yè)心得與體會
在處理大規(guī)模數(shù)據(jù)集時,需要仔細(xì)思考要表達(dá)什么樣的信息,并根據(jù)信息的類型選擇符合需求的可視化方式。
使用 Pyecharts 能夠快速創(chuàng)建許多類型繁多的圖形,其圖形美觀大方,操作簡單,既方便業(yè)余愛好者進(jìn)行數(shù)據(jù)分析,也能幫助數(shù)據(jù)科學(xué)家快速展示洞見。
在制作過程中,注意美觀和簡潔結(jié)合的原則。如果圖表上有太多信息,可能會導(dǎo)致視覺上的混淆。因此要確保視覺設(shè)計清晰、易于理解,并注意縮放比例、標(biāo)簽大小等細(xì)節(jié)。文章來源:http://www.zghlxwxcb.cn/news/detail-754475.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-754475.html
到了這里,關(guān)于基于Python的疫情數(shù)據(jù)可視化(matplotlib,pyecharts動態(tài)地圖,大屏可視化)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!