Python疫情數(shù)據(jù)可視化分析
前言
本項目主要通過python的matplotlib pandas pyecharts等庫對疫情數(shù)據(jù)進行可視化分析
數(shù)據(jù)來源:
- 本數(shù)據(jù)集來源于kaggle競賽的開源數(shù)據(jù)集,數(shù)據(jù)集地址
- 本數(shù)據(jù)集主要涉及到全球疫情統(tǒng)計,包括確診、治愈、死亡、時間、國家、地區(qū)等信息
功能函數(shù)
讀取文件
df = pd.read_csv(r'C:\Users\Hasee\Desktop/covid_19_data.csv') df.head()

更換列名,便于查看
cols= ['序號','日期','省/州','國家','最近更新','確診','死亡','治愈'] df.columns = cols df.日期 = pd.to_datetime(df.日期) df

## 利用groupby按照日期統(tǒng)計確診死亡治愈病例的總和
#合并同一天同國家日期
global_confirm = df.groupby('日期')[['確診', '死亡', '治愈']].sum()
global_confirm
全球疫情趨勢
ax = global_confirm.plot(figsize = (12,10), title = '全球疫情趨勢圖')

篩選出中國的數(shù)據(jù)
利用groupby按照日期統(tǒng)計確診死亡治愈病例的總和
global_china = df[df['國家'] == 'Mainland China'].reset_index()
global_china_confirm = global_china.groupby('日期')[['確診', '死亡', '治愈']].sum().reset_index()畫圖,三條線組合到一個圖

利用groupby按照省統(tǒng)計確診死亡治愈病例的總和
global_china = df[df['國家'] == 'Mainland China'].reset_index()
global_china_province_confirm = global_china.groupby('省/州')[['確診', '死亡', '治愈']].sum().reset_index()
recovercent = 100.*global_china_province_confirm['治愈'] / global_china_province_confirm['治愈'].sum()
labels = ['{0}-{1:1.2f}%-{2}'.format(i,j,k) for i,j,k in zip(list(global_china_province_confirm['省/州']), recovercent, list(global_china_province_confirm['治愈']))]
plt.figure(figsize=(10,10))
plt.pie(global_china_province_confirm['治愈'],radius = 0.3)

確診人數(shù)排名前15的國家
plt.figure(figsize=(16,16))
plt.barh(list(global_country_confirm_rank.國家)[::-1], list(global_country_confirm_rank.確診)[::-1])
plt.title('確診人數(shù)排名前15的國家')
plt.xlabel('人數(shù)(千萬)')
plt.ylabel('國家')
這里用pyecharts庫畫圖,繪制的玫瑰圖,rosetype
set_global_opts是設(shè)置格式:

中國確診人數(shù)前十的省
china_confirm = df[df['國家'] == "Mainland China"]
china_latest = china_confirm[china_confirm['日期'] == max(china_confirm['日期'])]
words = WordCloud()
words.add('確診人數(shù)', [tuple(dic) for dic in zip(list(china_latest['省/州']),list(china_latest['確診']))], word_size_range=[20,100])
區(qū)域圖
china_death = df[df['國家'] == "Mainland China"]
china_death_latest = china_death[china_death['日期'] == max(china_death['日期'])]
china_death_latest = china_death_latest.groupby('省/州')[['確診', '死亡']].max().reset_index()
geo = Map()
geo.add("中國死亡病例分布", [list(z) for z in zip(china_death_prodic,list(china_death_latest['死亡']))], "china")
geo.set_global_opts(title_opts=opts.TitleOpts(title="全國各省死亡病例數(shù)據(jù)分布"),visualmap_opts=opts.VisualMapOpts(is_piecewise=True,
pieces=[
{"min": 1500, "label": '>10000人', "color": "#6F171F"},
{"min": 500, "max": 15000, "label": '500-1000人', "color": "#C92C34"},
{"min": 100, "max": 499, "label": '100-499人', "color": "#E35B52"},
{"min": 10, "max": 99, "label": '10-99人', "color": "#F39E86"},
{"min": 1, "max": 9, "label": '1-9人', "color": "#FDEBD0"}]))
geo.render_notebook()
熱力圖
geo = Geo()
geo.add_schema(maptype="china")
geo.add("中國死亡病例分布", [list(dic) for dic in zip(china_death_prodic,list(china_death_latest['死亡']))],type_=GeoType.EFFECT_SCATTER)
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(),title_opts=opts.TitleOpts(title="全國各省死亡病例數(shù)據(jù)分布"))
geo.render_notebook()
全球死亡人數(shù)地理分布情況
map = Map()
map.set_global_opts(title_opts=opts.TitleOpts(title="全球死亡人數(shù)地理分布情況"),visualmap_opts=opts.VisualMapOpts(is_piecewise=True,
pieces=[
{"min": 100001, "label": '>100001人', "color": "#6F171F"},
{"min": 10001, "max": 100000, "label": '10001-100000人', "color": "#C92C34"},
{"min": 1001, "max": 10000, "label": '1001-10000人', "color": "#E35B52"},
{"min": 101, "max": 10000, "label": '101-10000人', "color": "#F39E86"},
{"min": 1, "max": 100, "label": '1-100人', "color": "#FDEBD0"}]))
map.add("全球死亡人數(shù)地理分布情況", [list(z) for z in zip(global_death_n,list(global_death['死亡']))], "world")
map.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
map.render_notebook()
全球疫情頻率直方圖
global_confirm.plot.hist(alpha=0.5)
plt.xlabel('人數(shù)(千萬)')
plt.ylabel('出現(xiàn)頻率')
plt.title('全球疫情頻率直方圖')
其他圖
陜西確診病例餅圖

陜西省確診病例數(shù)據(jù)分布

中國治愈病例玫瑰圖

到此這篇關(guān)于Python疫情數(shù)據(jù)可視化分析的文章就介紹到這了,更多相關(guān)Python可視化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中判斷類型函數(shù)isinstance()示例詳解
isinstance()函數(shù)是Python的內(nèi)置函數(shù),用于判斷一個變量是否是某個類型或者是該類型的子類的實例,在Python中,所有類都繼承自object,所以任何實例都會是object的實例,本文給大家介紹python中判斷類型函數(shù)isinstance(),感興趣的朋友一起看看吧2024-10-10
使用python對多個txt文件中的數(shù)據(jù)進行篩選的方法
今天小編就為大家分享一篇使用python對多個txt文件中的數(shù)據(jù)進行篩選的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
python 利用panda 實現(xiàn)列聯(lián)表(交叉表)
這篇文章主要介紹了python 利用panda 實現(xiàn)列聯(lián)表(交叉表),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
es+flask搜索小項目實現(xiàn)分頁+高亮的示例代碼
本文主要介紹了es+flask搜索小項目實現(xiàn)分頁+高亮的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
解決Django后臺ManyToManyField顯示成Object的問題
今天小編就為大家分享一篇解決Django后臺ManyToManyField顯示成Object的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python實現(xiàn)FTP上傳文件或文件夾實例(遞歸)
本篇文章主要介紹了Python實現(xiàn)FTP上傳文件或文件夾實例(遞歸),具有一定的參考價值,有興趣的可以了解一下。2017-01-01

