Python?matplotlib實戰(zhàn)之散點圖繪制
散點圖,又名點圖、散布圖、X-Y圖,是將所有的數(shù)據(jù)以點的形式展現(xiàn)在平面直角坐標系上的統(tǒng)計圖表。
散點圖常被用于分析變量之間的相關(guān)性。
- 如果兩個變量的散點看上去都在一條直線附近波動,則稱變量之間是線性相關(guān)的;
- 如果所有點看上去都在某條曲線(非直線)附近波動,則稱此相關(guān)為非線形相關(guān)的;
- 如果所有點在圖中沒有顯示任何關(guān)系,則稱變量間是不相關(guān)的。
散點圖一般需要兩個不同變量,一個沿x軸繪制,另一個沿y軸繪制。
眾多的散點疊加后,有助于展示數(shù)據(jù)集的“整體景觀”,從而幫助我們分析兩個變量之間的相關(guān)性,或找出趨勢和規(guī)律。
1. 主要元素
散點圖的主要元素包括:
- 橫軸:表示自變量。
- 縱軸:表示因變量。
- 數(shù)據(jù)點:每個數(shù)據(jù)點代表一個觀測值,它在坐標軸上的位置表示兩個變量的對應(yīng)取值。
- 趨勢線:趨勢線是通過數(shù)據(jù)點擬合出的一條線,用于顯示變量之間的趨勢或關(guān)聯(lián)性。
2. 適用的場景
散點圖適用的分析場景包括:
- 變量關(guān)系探索:幫助我們觀察和理解兩個變量之間的關(guān)系。通過觀察數(shù)據(jù)點的分布情況和趨勢線的形狀,可以判斷變量之間是否存在線性關(guān)系、非線性關(guān)系或無關(guān)系。
- 趨勢分析:用于分析趨勢和預(yù)測。通過觀察趨勢線的方向和斜率進行預(yù)測。
- 群體分析:散點圖可以幫助我們觀察和識別數(shù)據(jù)點的聚類情況。
- 異常值檢測:散點圖可以用于檢測異常值或離群點。
3. 不適用的場景
散點圖不適用的分析場景包括:
- 時間序列分析:散點圖主要用于展示兩個變量之間的關(guān)系,對于時間序列數(shù)據(jù),通常使用折線圖或其他適合展示時間變化的圖表類型。
- 多變量分析:散點圖只能展示兩個變量之間的關(guān)系,對于多個變量之間的關(guān)系分析,需要使用其他圖表類型,如散點矩陣、平行坐標圖等。
- 分布分析:散點圖主要關(guān)注變量之間的關(guān)系,而不是變量本身的分布情況。如果需要分析變量的分布特征,可以使用直方圖、箱線圖等圖表類型。
4. 分析實戰(zhàn)
散點圖適合尋找兩個變量之間的關(guān)系,本次分析 **空氣污染 **方面的數(shù)據(jù)情況。
4.1. 數(shù)據(jù)來源
數(shù)據(jù)來源國家統(tǒng)計局公開的數(shù)據(jù)。
用到的兩個統(tǒng)計數(shù)據(jù)分別是:
- 工業(yè)污染治理中,每年治理廢氣的投資額
- 廢氣中二氧化硫的每年排放量情況
整理好的數(shù)據(jù)可從下面的地址下載:databook.top/nation/A0C
A0C05.csv
(廢氣中主要污染物排放) 和 A0C0I.csv
(工業(yè)污染治理投資) 兩個文件。
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. 數(shù)據(jù)清理
2022年數(shù)據(jù)是空的,所以從兩個文件中分別提取 2012~2021
年期間,匯總**所有廢氣排放量(萬噸)和治理廢氣項目完成投資(萬元) **兩類數(shù)據(jù)繪制圖形。
#所有廢氣的排放量 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. 分析結(jié)果可視化
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("治理廢氣項目完成投資(億元)")
從分析結(jié)果圖中來看,排放的廢氣量越大的時候,治理的投資費用也越高。
但是右下角紅色框內(nèi)有一個異常值,那個是2012年的數(shù)據(jù)。
估計那時候還不太重視環(huán)保,所以即使那時候廢氣排放量大,用于治理廢氣的投資費用也不高。
以上就是Python matplotlib實戰(zhàn)之散點圖繪制的詳細內(nèi)容,更多關(guān)于matplotlib散點圖的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
對Python中DataFrame選擇某列值為XX的行實例詳解
今天小編就為大家分享一篇對Python中DataFrame選擇某列值為XX的行實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01python dict remove數(shù)組刪除(del,pop)
我們在用數(shù)組列表做刪除的時候,可能選擇2個方法,一個是del,一個是pop方法2013-03-03pytorch: Parameter 的數(shù)據(jù)結(jié)構(gòu)實例
今天小編就為大家分享一篇pytorch: Parameter 的數(shù)據(jù)結(jié)構(gòu)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python獲取時光網(wǎng)電影數(shù)據(jù)的實例代碼
這篇文章主要介紹了Python獲取時光網(wǎng)電影數(shù)據(jù),基本原理是先通過requests庫,通過時光網(wǎng)自帶的電影數(shù)據(jù)API接口,獲取到指定的電影數(shù)據(jù),本文結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-09-09python+selenium實現(xiàn)QQ郵箱自動發(fā)送功能
這篇文章主要為大家詳細介紹了python+selenium實現(xiàn)QQ郵箱自動發(fā)送功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01Python機器學習算法庫scikit-learn學習之決策樹實現(xiàn)方法詳解
這篇文章主要介紹了Python機器學習算法庫scikit-learn學習之決策樹實現(xiàn)方法,結(jié)合實例形式分析了決策樹算法的原理及使用sklearn庫實現(xiàn)決策樹的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07TensorFlow神經(jīng)網(wǎng)絡(luò)優(yōu)化策略學習
這篇文章主要介紹了TensorFlow神經(jīng)網(wǎng)絡(luò)優(yōu)化策略2018-03-03