偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

用Python可視化神器Plotly動(dòng)態(tài)演示全球疫情變化趨勢(shì)

開發(fā) 后端
今天我來用 Python 可視化申請(qǐng) Plotly 對(duì)國外的疫情發(fā)展情況進(jìn)行可視化,以項(xiàng)目實(shí)戰(zhàn)的形式,在分析和了解國外疫情變化趨勢(shì)的同時(shí),加深大家對(duì) Plotly 的學(xué)習(xí)應(yīng)用。

用 Python可視化神器 Plotly 

動(dòng)態(tài)演示全球疫情變化趨勢(shì)

各位同學(xué)早上好,我是 Lemonbit 。

近期對(duì)疫情數(shù)據(jù)進(jìn)行可視化的內(nèi)容比較多,今天我來用 Python 可視化申請(qǐng) Plotly 對(duì)國外的疫情發(fā)展情況進(jìn)行可視化,以項(xiàng)目實(shí)戰(zhàn)的形式,在分析和了解國外疫情變化趨勢(shì)的同時(shí),加深大家對(duì) Plotly 的學(xué)習(xí)應(yīng)用。

在開始之前,我們先來看看最終制作的部分效果圖,如果你覺得有興趣,不妨繼續(xù)往下看。

數(shù)據(jù)來源

國內(nèi)的疫情,目前已逐步受到控制,各項(xiàng)指標(biāo)已開始明顯好轉(zhuǎn),但國外的情況,看起來不是太樂觀,已有的作業(yè)也沒有抄好,所以,本次我們主要來可視化分析國外疫情的發(fā)展情況。

疫情的數(shù)據(jù)來源于開源項(xiàng)目 Akshare,由于使用該項(xiàng)目獲取數(shù)據(jù)時(shí),有時(shí)不太穩(wěn)定,可能會(huì)遇到連接失敗的情況,所以,這里我提供了保存好的數(shù)據(jù)供大家使用。

準(zhǔn)備工作

照例,還是先介紹下我運(yùn)行的環(huán)境

  •  Mac 系統(tǒng)
  •  Anaconda(Python 3.7)
  •  Jupyter Notebook

本次使用到的 Python 庫包括 akshare, pandas, plotly 等,導(dǎo)入如下:   

  1. import akshare as ak  
  2.     import pandas as pd  
  3.     import plotly  
  4.     from plotly.offline import iplot, init_notebook_mode  
  5.     import plotly.express as px 
  6.     from datetime import datetime  
  7.     init_notebook_mode() 

接著,我們讀取已獲得的數(shù)據(jù),已保存的數(shù)據(jù)是截至3月7日的。   

  1. # 從 akshare 獲取數(shù)據(jù) 
  2.    # df_all_history = ak.epidemic_history()  
  3.    # 從csv文件獲取數(shù)據(jù)  
  4.    df_all_history = pd.read_csv('epidemic_all_20200307.csv',index_col=0 
  5.    df_all_history 

從上面獲取的數(shù)據(jù),有些數(shù)據(jù)格式需要加以調(diào)整,對(duì)于日期,我們這里會(huì)組織兩列數(shù)據(jù),一列是時(shí)間格式的日期( ['date']),一列是字符串格式的日期 ( ['dates'])。這樣設(shè)置的原因,是因?yàn)槲覀兒罄m(xù)分別需要用到這兩種格式的日期。   

  1. df_all = df_all_history  
  2.     # 將字符串格式的日期 另保存為一列  
  3.     df_all['dates'] = df_all_history['date']  
  4.     # 將字符串格式的日期轉(zhuǎn)換為 日期格式  
  5.     df_all['date'] = pd.to_datetime(df_all['date']) 

獲取國外的疫情數(shù)據(jù)

上面的數(shù)據(jù),是全球的數(shù)據(jù),我們可以把其中屬于中國的剔除,就可以得到國外的數(shù)據(jù)了。   

  1. # 國外,按國家統(tǒng)計(jì) 
  2.     df_oversea = df_all.query("country!='中國'")  
  3.     df_oversea.fillna(value=""inplace=True 
  4.     df_oversea 

先來用 plotly express 看下國外疫情分國家的整體走勢(shì)。   

  1. # 國外,按國家統(tǒng)計(jì)  
  2.     df_oversea = df_all.query("country!='中國'") 
  3.     df_oversea.fillna(value=""inplace=True 
  4.     df_oversea 

從上圖可以看出,國外的疫情發(fā)展情況,大部分國家從2月10日期,發(fā)展趨勢(shì)較為明顯,因此,后面我們重點(diǎn)分析這段時(shí)間之后的情況。   

  1. # 現(xiàn)有數(shù)據(jù)演示從 2020年2月10日開始 
  2.    df_overseadf_oversea_recent = df_oversea.set_index('date') 
  3.    df_oversea_recentdf_oversea_recent = df_oversea_recent['2020-02-10':]  
  4.    df_oversea_recent 

由于部分國家的數(shù)據(jù)不是從2020年2月10日開始記錄的,所以要補(bǔ)充數(shù)據(jù)。我們可以手動(dòng)新建一個(gè) excel數(shù)據(jù)表,將補(bǔ)充日期的數(shù)值填充為 0 。

我這里主要補(bǔ)充的是伊朗的數(shù)據(jù),因?yàn)橐晾蕦?shí)在是發(fā)展太快了,必須納入分析的范圍內(nèi)。其他國家,如果有需要補(bǔ)充的,后續(xù)可以繼續(xù)完善。   

  1. # 由于部分國家,數(shù)據(jù)不是從2020年2月10日開始的,所以要補(bǔ)充數(shù)據(jù),數(shù)值為 0  
  2.    # 數(shù)據(jù)在 excel 表格中進(jìn)行補(bǔ)充,這里進(jìn)行讀取  
  3.    df_oversea_buchong = pd.read_excel('epidemic_buchong.xlsx')  
  4.    df_oversea_buchong['dates'] = df_oversea_buchong['date'].apply(lambda x:x.strftime('%Y-%m-%d'))  
  5.    df_oversea_buchong.set_index('date', inplace=True
  6.    df_oversea_buchong.fillna(value=""inplace=True 
  7.    print(df_oversea_buchong.info())  
  8.    df_oversea_buchong 

將需要補(bǔ)充的數(shù)據(jù)弄好后,我們可以合并上面這兩部分?jǐn)?shù)據(jù),一起進(jìn)行分析。 

  1. # 合并補(bǔ)充數(shù)據(jù)  
  2.   df_oversea_recentdf_oversea_recent_new = df_oversea_recent.append(df_oversea_buchong)  
  3.   df_oversea_recent_new.sort_index(inplace=True 
  4.   df_oversea_recent_new 

得到合并的數(shù)據(jù)后,首先,我們用氣泡圖來對(duì)變化情況進(jìn)行可視化,這里用的是 plotly express 的散點(diǎn)圖。

plotly express 現(xiàn)在已經(jīng)合并到 plotly 中,個(gè)人覺得跟 plotly 原生內(nèi)容的協(xié)同性相對(duì) cufflinks 要好用點(diǎn)。 

  1. # 合并補(bǔ)充數(shù)據(jù)  
  2.   df_oversea_recentdf_oversea_recent_new = df_oversea_recent.append(df_oversea_buchong)  
  3.   df_oversea_recent_new.sort_index(inplace=True 
  4.   df_oversea_recent_new 

從上面這個(gè)動(dòng)態(tài)圖可以清晰的看出,當(dāng)前,在海外的國家中,韓國、伊朗、意大利三個(gè)國家最為嚴(yán)重。這三個(gè)國家中,就增長趨勢(shì)而言,伊朗和意大利又比韓國要更明顯,目前韓國的增長有所放緩,而伊朗和意大利還處于快速增長的過程中,后續(xù)情況不容樂觀。

此外,在這個(gè)圖中,另外還有幾個(gè)國家值得關(guān)注,日本,除去鉆石號(hào)之外,從數(shù)據(jù)來看,本土的增長目前還算是在稍微較好的范圍內(nèi)。反倒是,德國、法國、西班牙,個(gè)人覺得已成逐步壯大之勢(shì),不得不防。

而且,由于整個(gè)歐盟國家之間,人員是自由流通的,現(xiàn)在看來,整個(gè)歐盟很可能會(huì)成為疫情的重災(zāi)區(qū),其影響巨大。

上圖左下角的這些國家的走勢(shì),我們可以拉近來看,走勢(shì)如下,這樣,對(duì)于 德國、法國、西班牙就會(huì)看的更明顯了。

這里,還有一個(gè)國家,就是美國,雖然從數(shù)據(jù)以及增長情況來看,好像美國還好,但恐怕實(shí)際情況,要糟糕很多。

上面是以氣泡圖的方式來演示變化過程,我們也可以以柱狀圖的形式來演示,效果如下:

關(guān)于上面的效果圖,各位可以自行研究下,歡迎交流。

需要說明的是,本文代碼是在 Jupyter Notebook 中運(yùn)行的, 如果是在 PyCharm 等 IDE 中運(yùn)行,需要稍微修改下代碼。

最后,再次感謝開源項(xiàng)目 Akshare 提供了數(shù)據(jù)接口。

 

 

責(zé)任編輯:龐桂玉 來源: 戀習(xí)Python
相關(guān)推薦

2021-07-02 14:07:00

可視化Plotly漏斗圖

2022-08-26 09:15:58

Python可視化plotly

2024-04-01 11:53:42

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

2022-02-23 09:50:52

PythonEchartspyecharts

2020-06-29 15:40:53

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

2022-06-28 09:34:24

可視化Python代碼

2021-10-08 09:27:11

Python圖形化工具

2025-04-01 08:30:00

Plotly數(shù)據(jù)可視化數(shù)據(jù)分析

2022-05-16 09:34:17

Python可視化圖表

2025-06-17 08:05:00

2020-06-02 10:09:59

JavaScript開發(fā) 可視化

2024-07-11 16:16:27

ChatGPTLLM

2021-09-27 08:31:01

數(shù)據(jù)可視化柱狀圖折現(xiàn)圖

2020-03-11 14:39:26

數(shù)據(jù)可視化地圖可視化地理信息

2021-07-14 09:00:36

Python數(shù)據(jù)Python基礎(chǔ)

2024-08-20 14:31:16

2021-08-05 13:52:05

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

2019-03-20 13:44:30

Web 開發(fā)代碼

2020-11-02 13:54:41

Python可視化決策樹

2018-08-09 22:16:35

可視化數(shù)據(jù)集Groeger
點(diǎn)贊
收藏

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