散點圖,又名點圖、散佈圖、X-Y圖,是將所有的數據以點的形式展現在平面直角坐標繫上的統計圖表。 散點圖常被用於分析變數之間的相關性。如果兩個變數的散點看上去都在一條直線附近波動,則稱變數之間是線性相關的;如果所有點看上去都在某條曲線(非直線)附近波動,則稱此相關為非線形相關的;如果所有點在圖中沒有顯 ...
散點圖,又名點圖、散佈圖、X-Y圖,是將所有的數據以點的形式展現在平面直角坐標繫上的統計圖表。
散點圖常被用於分析變數之間的相關性。
如果兩個變數的散點看上去都在一條直線附近波動,則稱變數之間是線性相關的;
如果所有點看上去都在某條曲線(非直線)附近波動,則稱此相關為非線形相關的;
如果所有點在圖中沒有顯示任何關係,則稱變數間是不相關的。
散點圖一般需要兩個不同變數,一個沿x軸繪製,另一個沿y軸繪製。
眾多的散點疊加後,有助於展示數據集的“整體景觀”,從而幫助我們分析兩個變數之間的相關性,或找出趨勢和規律。
1. 主要元素
散點圖的主要元素包括:
- 橫軸:表示自變數。
- 縱軸:表示因變數。
- 數據點:每個數據點代表一個觀測值,它在坐標軸上的位置表示兩個變數的對應取值。
- 趨勢線:趨勢線是通過數據點擬合出的一條線,用於顯示變數之間的趨勢或關聯性。
2. 適用的場景
散點圖適用的分析場景包括:
- 變數關係探索:幫助我們觀察和理解兩個變數之間的關係。通過觀察數據點的分佈情況和趨勢線的形狀,可以判斷變數之間是否存線上性關係、非線性關係或無關係。
- 趨勢分析:用於分析趨勢和預測。通過觀察趨勢線的方向和斜率進行預測。
- 群體分析:散點圖可以幫助我們觀察和識別數據點的聚類情況。
- 異常值檢測:散點圖可以用於檢測異常值或離群點。
3. 不適用的場景
散點圖不適用的分析場景包括:
- 時間序列分析:散點圖主要用於展示兩個變數之間的關係,對於時間序列數據,通常使用折線圖或其他適合展示時間變化的圖表類型。
- 多變數分析:散點圖只能展示兩個變數之間的關係,對於多個變數之間的關係分析,需要使用其他圖表類型,如散點矩陣、平行坐標圖等。
- 分佈分析:散點圖主要關註變數之間的關係,而不是變數本身的分佈情況。如果需要分析變數的分佈特征,可以使用直方圖、箱線圖等圖表類型。
4. 分析實戰
散點圖適合尋找兩個變數之間的關係,本次分析 **空氣污染 **方面的數據情況。
4.1. 數據來源
數據來源國家統計局公開的數據。
用到的兩個統計數據分別是:
- 工業污染治理中,每年治理廢氣的投資額
- 廢氣中二氧化硫的每年排放量情況
整理好的數據可從下麵的地址下載:
https://databook.top/nation/A0CA0C05.csv
(廢氣中主要污染物排放) 和 A0C0I.csv
(工業污染治理投資) 兩個文件。
fp = "d:/share/data/A0C05.csv"
df1 = pd.read_csv(fp)
df1
fp = "d:/share/data/A0C0I.csv"
df2 = pd.read_csv(fp)
df2
4.2. 數據清理
2022年數據是空的,所以從兩個文件中分別提取 2012~2021
年期間,彙總所有廢氣排放量(萬噸)和**治理廢氣項目完成投資(萬元) **兩類數據繪製圖形。
#所有廢氣的排放量
data_x = df1[(df1["sj"] >= 2012) &
(df1["sj"] <= 2021)]
data_x = data_x.loc[:, ["sj", "value"]]
data_x = data_x.groupby("sj").sum("value")
#治理廢氣項目投資 A0C0I03是治理廢氣投資的編號
data_y = df2[(df2["sj"] >= 2012) &
(df2["sj"] <= 2021) &
(df2["zb"] == "A0C0I03")]
data_y = data_y.sort_index(ascending=False)
4.3. 分析結果可視化
with plt.style.context("seaborn-v0_8"):
fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.6, 0.6])
ax.scatter(data_x["value"], data_y["value"]/10000)
ax.set_xlabel("廢氣排放量(萬噸)")
ax.set_ylabel("治理廢氣項目完成投資(億元)")
從分析結果圖中來看,排放的廢氣量越大的時候,治理的投資費用也越高。
但是右下角紅色框內有一個異常值,那個是2012年的數據。
估計那時候還不太重視環保,所以即使那時候廢氣排放量大,用於治理廢氣的投資費用也不高。