【導(dǎo)語(yǔ)】:今天我們教你用Python畫(huà)出世界石油分布?;鶊D,Python技術(shù)部分可以直接看第四部分,。 作者:Mika 數(shù)據(jù):真達(dá) 后期:澤龍 設(shè)計(jì):一凡 Show me data,,用數(shù)據(jù)說(shuō)話 今天我們聊聊 世界石油分布桑基圖 點(diǎn)擊下方視頻,,先睹為快: 2020年的3月注定將載入史冊(cè),。一邊是新冠肺炎疫情在全世界快速擴(kuò)散,另一邊是掌控著世界40%以上油氣產(chǎn)量的巨頭們撕破臉皮,。 面對(duì)在OPEC+會(huì)議中堅(jiān)持不再減產(chǎn)的俄羅斯,,沙特阿拉伯決意提升石油產(chǎn)能搶占市場(chǎng),石油價(jià)格戰(zhàn)毫無(wú)征兆地開(kāi)打,。國(guó)際原油價(jià)格出現(xiàn)大幅波動(dòng),。3月9日,黑色星期一,,世界油價(jià)劇烈殺跌,,跌幅超過(guò)30%。 展現(xiàn)數(shù)據(jù)流動(dòng)的利器 桑基圖 這里我們用到的是?;鶊D(Sankey diagram),。 也許你沒(méi)見(jiàn)過(guò)這張圖,這算是一個(gè)比較小眾的圖表,。 我們可以看到?;鶊D主要由邊、流量和支點(diǎn)組成,,其中邊代表了流動(dòng)的數(shù)據(jù),,流量代表了流動(dòng)數(shù)據(jù)的具體數(shù)值,節(jié)點(diǎn)代表了不同分類,。邊的寬度與流量成比例地顯示,,邊越寬,數(shù)值越大,?!?/span> 02 桑基圖的發(fā)展 最早的?;鶊D 最著名的?;鶊D是查爾斯·米納德(Charles Minard)繪制的1812年拿破侖俄國(guó)戰(zhàn)役地圖。這張戰(zhàn)役地圖將一張?;鶊D疊加到一張地圖上,,是一張流程圖與地圖結(jié)合的圖表。 ?;鶊D中的粉色部分描繪了拿破侖軍隊(duì)在歐洲的移動(dòng)和數(shù)量變化情況,,顯示了在1812年6月,拿破侖帶領(lǐng)了42萬(wàn)人入侵俄羅斯,。然而隨著戰(zhàn)爭(zhēng)不斷深入,,軍隊(duì)人數(shù)一路減少,到了戰(zhàn)敗撤退時(shí),,只剩下1萬(wàn)人,。這張最早的桑基圖創(chuàng)建于1869年,,但它那時(shí)候還不叫?;鶊D,直到29年后一位愛(ài)爾蘭船長(zhǎng)的出現(xiàn),。 ?;鶊D的命名 1898年,愛(ài)爾蘭船長(zhǎng)馬修·亨利·菲尼亞斯·里亞爾·?;∕atthew Henry Phineas Riall Sankey)使用了這種類型的圖表展示了蒸汽的能源效率,。與此同時(shí),,這個(gè)圖也以船長(zhǎng)的名字命名為“桑基圖”,。 當(dāng)時(shí)在這張黑白圖表只顯示了一種類型的流動(dòng)(如蒸汽); 使用不同顏色能表示不同類型的流動(dòng),,從而表達(dá)出多種變量。 隨著時(shí)間的推移,,?;鶊D逐漸成為科學(xué)和工程中用來(lái)表示熱平衡、能量流,、物質(zhì)流動(dòng)的標(biāo)準(zhǔn)模型,。 比起普通的流程圖或條形圖,?;鶊D體現(xiàn)的數(shù)據(jù)流動(dòng)清晰且美觀,,因此在能源管理、設(shè)施管理,、過(guò)程工程和過(guò)程控制等數(shù)據(jù)可視化方面,,桑基圖也越來(lái)越受歡迎,。 03 ?;鶊D的用例 桑基圖一個(gè)最大的特點(diǎn)就是,,無(wú)論數(shù)據(jù)怎么流動(dòng),,桑基圖的總數(shù)值保持不變,,堅(jiān)持?jǐn)?shù)據(jù)的“能量守恒”,。 汽車的能量消耗 在這個(gè)桑基圖中,,你可以看到汽車的能量平衡,。除了車輪行駛所消耗的能量之外,還有很大一部分能量損失了,,尤其是熱量損失,。此外,還有水泵,、轉(zhuǎn)向支持等定額外的能源消耗,。圖表中的流量可以用顏色來(lái)區(qū)分,它們的寬度與所代表的流量成比例,。 圖源: Prof. Mario Schmidt, INEC, Pforzheim University 國(guó)家的能源平衡 在地區(qū)或國(guó)家的能源平衡經(jīng)常使用?;鶊D繪制能源流程圖。從而可以清晰的看出能源和能源來(lái)源的不同用途。 這張圖是2011年馬來(lái)西亞的能源平衡,。圖中流動(dòng)表示的是“百萬(wàn)噸石油當(dāng)量”(Mtoe),。 圖源:Chong, C.; Ni, W.; Ma, L.; Liu, P.; Li, Z. The Use of Energy in Malaysia: Tracing Energy Flows from Primary Source to End Use. Energies 2015, 8, 2828-2866. 法國(guó)公關(guān)管理部門(mén)資金來(lái)源 法國(guó)公共管理部門(mén)就曾用一張?;鶊D理清了他們的收支資金來(lái)源,,以及他們是如何分配這些資金的。最左邊的支點(diǎn)代表了不同的資金來(lái)源,,包括社會(huì),、個(gè)人稅收等。這些資金在匯總到法國(guó)的四大公共管理部門(mén)后,,被再分配到交通,、環(huán)境保護(hù)、住房,、教育,、文化等各個(gè)領(lǐng)域。 圖源:www.behance.net 04 教你用Python 輕松繪制世界石油分布圖 可見(jiàn)在表示數(shù)據(jù)流動(dòng)方面,,?;鶊D十分清晰而且美觀。前面我們展示了一張世界石油產(chǎn)量前30國(guó)家分布?;鶊D,,下面我們教你就用pyecharts來(lái)實(shí)現(xiàn)它。 如果你沒(méi)有安裝pyecharts,,可以使用以下代碼在終端進(jìn)行pip安裝,。 pip install pyecharts 首先需要導(dǎo)入我們需要使用的包,其中pandas用于數(shù)據(jù)整理,,pyecharts用于繪圖,。 import pandas as pd 然后使用pandas讀入數(shù)據(jù),所使用數(shù)據(jù)來(lái)自于BP世界能源統(tǒng)計(jì)年鑒-2019版,,整理之后的數(shù)據(jù)使用數(shù)據(jù)框的形式進(jìn)行存儲(chǔ),,其中state表示國(guó)家名稱,continent表示大洲名,,num表示石油產(chǎn)量(單位百萬(wàn)噸) df1 = pd.read_excel('石油產(chǎn)量排名.xlsx') ?;鶊D在pyecharts中通過(guò)Sankey方法實(shí)現(xiàn),它接受兩個(gè)外部輸入,。一個(gè)是所有類別的集合-nodes,,一個(gè)是子類、父類,、數(shù)據(jù)的三方集合-links,。也就是說(shuō),首先你要把數(shù)據(jù)轉(zhuǎn)換成Sankey可以接受的形式,下面這個(gè)是官網(wǎng)的示例的數(shù)據(jù)格式: 下面我們寫(xiě)個(gè)簡(jiǎn)單的循環(huán)語(yǔ)句,,將數(shù)據(jù)轉(zhuǎn)換成nodes和links形式: # 產(chǎn)生節(jié)點(diǎn) 準(zhǔn)備好nodes和links后,,就可以調(diào)用Sankey函數(shù)進(jìn)行繪圖,你可以通過(guò)配置項(xiàng)otps來(lái)設(shè)置圖表的顏色,、標(biāo)簽,、標(biāo)題等信息,具體細(xì)節(jié)可以去官網(wǎng)查詢,,這里不做贅述,。 官網(wǎng)鏈接:https:// colors = ['#54B4F9', '#F29150', '#FF7BAE', '#D69AC0', '#485CE0', '#28BE7A'] 生成html文件后,直接通過(guò)瀏覽器打開(kāi)即可,,就可以看到能交互的?;鶊D了,生成的圖形如下: 以上這就是成品啦,,是不是效果十分驚艷呢,!快來(lái)自己試試吧! 參考資料: What is a Sankey diagram? https://www./en/e-sankey/sankey-diagram/ Wikipedia :Matthew Henry Phineas Riall Sankey https://en./wiki/Matthew_Henry_Phineas_Riall_Sankey Wikipedia : Sankey diagram https://en./wiki/Sankey_diagram 油價(jià)暴跌對(duì)我們意味著什么,? |
|
來(lái)自: CDA數(shù)據(jù)分析師 > 《待分類》