Matplotlib實(shí)戰(zhàn)之堆疊面積圖繪制詳解
堆疊面積圖和面積圖都是用于展示數(shù)據(jù)隨時(shí)間變化趨勢的統(tǒng)計(jì)圖表,但它們的特點(diǎn)有所不同。
面積圖的特點(diǎn)在于它能夠直觀地展示數(shù)量之間的關(guān)系,而且不需要標(biāo)注數(shù)據(jù)點(diǎn),可以輕松地觀察數(shù)據(jù)的變化趨勢。而堆疊面積圖則更適合展示多個(gè)數(shù)據(jù)系列之間的變化趨勢,它們一層層的堆疊起來,每個(gè)數(shù)據(jù)系列的起始點(diǎn)是上一個(gè)數(shù)據(jù)系列的結(jié)束點(diǎn),多數(shù)據(jù)列的展示更加直觀和易于理解。
堆疊面積圖觀察幾個(gè)數(shù)據(jù)系列隨時(shí)間的變化情況時(shí),既能看到各數(shù)據(jù)系列的走勢,又能看到整體的規(guī)模,但是,過多的系列,也會導(dǎo)致難以分辨。
此外,堆疊面積圖展示的數(shù)據(jù)一般會有時(shí)間上的關(guān)聯(lián),當(dāng)數(shù)據(jù)沒有時(shí)間上的關(guān)聯(lián)時(shí),建議適用堆疊柱狀圖。
1. 主要元素
堆疊面積圖是一種用于展示數(shù)據(jù)分類、分組和數(shù)據(jù)關(guān)聯(lián)性的圖表,主要由以下幾個(gè)元素組成:
- 堆疊面積:表示數(shù)據(jù)的分布或密度
- 圖例:圖例用于說明堆疊圖的繪制規(guī)則和參數(shù)
- X軸:一般是有序變量,表示數(shù)據(jù)點(diǎn)的變化區(qū)間
- Y軸:數(shù)據(jù)點(diǎn)在不同時(shí)刻的值
2. 適用的場景
堆疊面積圖適用于以下分析場景:
- 類別占比比較:堆疊面積圖可以用來比較不同類別在總體中的占比關(guān)系。例如,你可以使用堆疊面積圖來展示銷售額按產(chǎn)品類別的分布情況,以顯示每個(gè)類別對總銷售額的貢獻(xiàn)。
- 趨勢展示:堆疊面積圖可以在一個(gè)圖表中同時(shí)顯示多個(gè)類別或組的趨勢。它可以用來展示每個(gè)類別在不同時(shí)間點(diǎn)或區(qū)域的變化情況,并幫助分析人員觀察和理解各類別之間的差異和趨勢。
- 堆疊級別比較:堆疊面積圖還可以用來比較不同級別的數(shù)據(jù)在總體中的占比關(guān)系。例如,你可以使用堆疊面積圖來展示各部門在總體支出中的比例,以顯示各個(gè)部門的相對貢獻(xiàn)。
- 累積效果展示:堆疊面積圖可以展示隨著時(shí)間、地區(qū)或其他維度的推移,各組別所積累的整體效果。這對于觀察累積效果的變化和趨勢非常有幫助。
3. 不適用的場景
堆疊面積圖不適用于以下分析場景:
- 數(shù)據(jù)重疊:如果數(shù)據(jù)中有重疊的部分,堆疊面積圖會使數(shù)據(jù)難以解讀和比較。當(dāng)數(shù)據(jù)的堆疊部分變得模糊或不清晰時(shí),堆疊面積圖可能就無法有效地傳達(dá)信息。
- 數(shù)據(jù)量變動:如果每個(gè)類別或組的數(shù)據(jù)量差別很大,堆疊面積圖可能會導(dǎo)致視覺上的需求不平衡。數(shù)據(jù)量較大的類別或組可能會過于突出,而數(shù)據(jù)量較小的類別或組則可能被掩蓋。
- 無法顯示趨勢:堆疊面積圖在展示數(shù)據(jù)的總體趨勢上相對有效,但卻不適用于顯示每個(gè)類別或組內(nèi)部的趨勢。如果你希望關(guān)注每個(gè)類別或組的個(gè)別趨勢,那么使用其他圖表類型如折線圖可能更為合適。
- 存在負(fù)值數(shù)據(jù):堆疊面積圖假設(shè)數(shù)據(jù)都是正值,不適合用于展示包含負(fù)值的數(shù)據(jù)。這是因?yàn)槎询B面積圖的堆疊效果會導(dǎo)致負(fù)值的表現(xiàn)相對模糊,難以準(zhǔn)確表達(dá)。
4. 分析實(shí)戰(zhàn)
這次使用三大產(chǎn)業(yè)的增加值來實(shí)戰(zhàn)堆疊面積圖的分析。
4.1. 數(shù)據(jù)來源
數(shù)據(jù)來源國家統(tǒng)計(jì)局公開數(shù)據(jù),已經(jīng)整理好的csv文件在:databook.top/nation/A02
本次分析使用其中的 A0201.csv
文件(國內(nèi)生產(chǎn)總值數(shù)據(jù))。
下面的文件路徑 fp
要換成自己實(shí)際的文件路徑。
fp = "d:/share/A0201.csv" df = pd.read_csv(fp) df
4.2. 數(shù)據(jù)清理
過濾出三大產(chǎn)業(yè)的數(shù)據(jù):
key1 = "第一產(chǎn)業(yè)增加值(億元)" key2 = "第二產(chǎn)業(yè)增加值(億元)" key3 = "第三產(chǎn)業(yè)增加值(億元)" df = df[(df["zbCN"] == key1) | (df["zbCN"] == key2) | (df["zbCN"] == key3)] df
4.3. 分析結(jié)果可視化
繪制三大產(chǎn)業(yè)的堆疊面積圖:
from matplotlib.ticker import MultipleLocator key1 = "第一產(chǎn)業(yè)增加值(億元)" key2 = "第二產(chǎn)業(yè)增加值(億元)" key3 = "第三產(chǎn)業(yè)增加值(億元)" val1 = df[(df["zbCN"] == key1)].sort_values("sj") val2 = df[(df["zbCN"] == key2)].sort_values("sj") val3 = df[(df["zbCN"] == key3)].sort_values("sj") with plt.style.context("seaborn-v0_8"): fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) ax.xaxis.set_major_locator(MultipleLocator(4)) ax.xaxis.set_minor_locator(MultipleLocator(2)) ax.stackplot( val1["sjCN"], [val1["value"], val2["value"], val3["value"]], labels=[key1, key2, key3], alpha=0.8, ) ax.legend(loc="upper left")
各個(gè)數(shù)據(jù)集在堆疊面積圖中不會重合,所以不僅可以看出各個(gè)產(chǎn)業(yè)的增長情況,還能看出整體的增長主要來自哪個(gè)產(chǎn)業(yè)的影響。
從分析結(jié)果可以看出,我國的經(jīng)濟(jì)增長主要來自于第二,第三產(chǎn)業(yè)的增長。
這個(gè)結(jié)果和之前的文章中關(guān)于人口的分析也是相吻合的,在那個(gè)文章中,我們發(fā)現(xiàn)農(nóng)業(yè)人口大量減少,城鎮(zhèn)人口大量增加。
到此這篇關(guān)于Matplotlib實(shí)戰(zhàn)之堆疊面積圖繪制詳解的文章就介紹到這了,更多相關(guān)Matplotlib堆疊面積圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入了解Python中計(jì)數(shù)器Counter的使用
計(jì)數(shù)器counter是包含在collections模塊中的容器,這篇文章主要來和大家聊聊計(jì)數(shù)器counter的使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-09-09python合并RepeatMasker預(yù)測結(jié)果中染色體的overlap區(qū)域
這篇文章主要為大家介紹了python合并RepeatMasker預(yù)測結(jié)果中染色體的overlap區(qū)域?qū)崿F(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07selenium+unittest實(shí)現(xiàn)web自動化的示例代碼
本文主要介紹了selenium+unittest實(shí)現(xiàn)web自動化的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Pytorch數(shù)據(jù)讀取與預(yù)處理該如何實(shí)現(xiàn)
這篇文章主要介紹了Pytorch數(shù)據(jù)讀取與預(yù)處理該如何實(shí)現(xiàn),幫助大家更好的理解和學(xué)習(xí)使用Pytorch,感興趣的朋友可以了解下2021-03-03使用python將多個(gè)excel文件合并到同一個(gè)文件的方法
這篇文章主要介紹了使用python將多個(gè)excel文件合并到同一個(gè)文件的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07