堆疊面積圖和麵積圖都是用於展示資料隨時間變化趨勢的統計圖表,但它們的特點有所不同。
面積圖的特點在於它能夠直觀地展示數量之間的關係,而且不需要標註資料點,可以輕鬆地觀察資料的變化趨勢。而堆疊面積圖則更適合展示多個資料系列之間的變化趨勢,它們一層層的堆疊起來,每個資料系列的起始點是上一個資料系列的結束點,多資料列的展示更加直觀和易於理解。
堆疊面積圖觀察幾個資料系列隨時間的變化情況時,既能看到各資料系列的走勢,又能看到整體的規模,
但是,過多的系列,也會導致難以分辨。
此外,堆疊面積圖展示的資料一般會有時間上的關聯,當資料沒有時間上的關聯時,建議適用堆疊柱狀圖。
1. 主要元素
堆疊面積圖是一種用於展示資料分類、分組和資料關聯性的圖表,主要由以下幾個元素組成:
- 堆疊面積:表示資料的分佈或密度
- 圖例:圖例用於說明堆疊圖的繪製規則和引數
- X軸:一般是有序變數,表示資料點的變化區間
- Y軸:資料點在不同時刻的值
2. 適用的場景
堆疊面積圖適用於以下分析場景:
- 類別佔比比較:堆疊面積圖可以用來比較不同類別在總體中的佔比關係。例如,你可以使用堆疊面積圖來展示銷售額按產品類別的分佈情況,以顯示每個類別對總銷售額的貢獻。
- 趨勢展示:堆疊面積圖可以在一個圖表中同時顯示多個類別或組的趨勢。它可以用來展示每個類別在不同時間點或區域的變化情況,並幫助分析人員觀察和理解各類別之間的差異和趨勢。
- 堆疊級別比較:堆疊面積圖還可以用來比較不同級別的資料在總體中的佔比關係。例如,你可以使用堆疊面積圖來展示各部門在總體支出中的比例,以顯示各個部門的相對貢獻。
- 累積效果展示:堆疊面積圖可以展示隨著時間、地區或其他維度的推移,各組別所積累的整體效果。這對於觀察累積效果的變化和趨勢非常有幫助。
3. 不適用的場景
堆疊面積圖不適用於以下分析場景:
- 資料重疊:如果資料中有重疊的部分,堆疊面積圖會使資料難以解讀和比較。當資料的堆疊部分變得模糊或不清晰時,堆疊面積圖可能就無法有效地傳達資訊。
- 資料量變動:如果每個類別或組的資料量差別很大,堆疊面積圖可能會導致視覺上的需求不平衡。資料量較大的類別或組可能會過於突出,而資料量較小的類別或組則可能被掩蓋。
- 無法顯示趨勢:堆疊面積圖在展示資料的總體趨勢上相對有效,但卻不適用於顯示每個類別或組內部的趨勢。如果你希望關注每個類別或組的個別趨勢,那麼使用其他圖表型別如折線圖可能更為合適。
- 存在負值資料:堆疊面積圖假設資料都是正值,不適合用於展示包含負值的資料。這是因為堆疊面積圖的堆疊效果會導致負值的表現相對模糊,難以準確表達。
4. 分析實戰
這次使用三大產業的增加值來實戰堆疊面積圖的分析。
4.1. 資料來源
資料來源國家統計局公開資料,已經整理好的csv檔案在:https://databook.top/nation/A02
本次分析使用其中的 A0201.csv
檔案(國內生產總值資料)。
下面的檔案路徑 fp
要換成自己實際的檔案路徑。
fp = "d:/share/A0201.csv"
df = pd.read_csv(fp)
df
4.2. 資料清理
過濾出三大產業的資料:
key1 = "第一產業增加值(億元)"
key2 = "第二產業增加值(億元)"
key3 = "第三產業增加值(億元)"
df = df[(df["zbCN"] == key1)
| (df["zbCN"] == key2)
| (df["zbCN"] == key3)]
df
4.3. 分析結果視覺化
繪製三大產業的堆疊面積圖:
from matplotlib.ticker import MultipleLocator
key1 = "第一產業增加值(億元)"
key2 = "第二產業增加值(億元)"
key3 = "第三產業增加值(億元)"
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")
各個資料集在堆疊面積圖中不會重合,
所以不僅可以看出各個產業的增長情況,還能看出整體的增長主要來自哪個產業的影響。
從分析結果可以看出,我國的經濟增長主要來自於第二,第三產業的增長。
這個結果和之前的文章中關於人口的分析也是相吻合的,在那個文章中,我們發現農業人口大量減少,城鎮人口大量增加。