Python?matplotlib實(shí)戰(zhàn)之散點(diǎn)圖繪制
散點(diǎn)圖,又名點(diǎn)圖、散布圖、X-Y圖,是將所有的數(shù)據(jù)以點(diǎn)的形式展現(xiàn)在平面直角坐標(biāo)系上的統(tǒng)計(jì)圖表。
散點(diǎn)圖常被用于分析變量之間的相關(guān)性。
- 如果兩個(gè)變量的散點(diǎn)看上去都在一條直線附近波動(dòng),則稱變量之間是線性相關(guān)的;
- 如果所有點(diǎn)看上去都在某條曲線(非直線)附近波動(dòng),則稱此相關(guān)為非線形相關(guān)的;
- 如果所有點(diǎn)在圖中沒有顯示任何關(guān)系,則稱變量間是不相關(guān)的。
散點(diǎn)圖一般需要兩個(gè)不同變量,一個(gè)沿x軸繪制,另一個(gè)沿y軸繪制。
眾多的散點(diǎn)疊加后,有助于展示數(shù)據(jù)集的“整體景觀”,從而幫助我們分析兩個(gè)變量之間的相關(guān)性,或找出趨勢和規(guī)律。
1. 主要元素
散點(diǎn)圖的主要元素包括:
- 橫軸:表示自變量。
- 縱軸:表示因變量。
- 數(shù)據(jù)點(diǎn):每個(gè)數(shù)據(jù)點(diǎn)代表一個(gè)觀測值,它在坐標(biāo)軸上的位置表示兩個(gè)變量的對(duì)應(yīng)取值。
- 趨勢線:趨勢線是通過數(shù)據(jù)點(diǎn)擬合出的一條線,用于顯示變量之間的趨勢或關(guān)聯(lián)性。

2. 適用的場景
散點(diǎn)圖適用的分析場景包括:
- 變量關(guān)系探索:幫助我們觀察和理解兩個(gè)變量之間的關(guān)系。通過觀察數(shù)據(jù)點(diǎn)的分布情況和趨勢線的形狀,可以判斷變量之間是否存在線性關(guān)系、非線性關(guān)系或無關(guān)系。
- 趨勢分析:用于分析趨勢和預(yù)測。通過觀察趨勢線的方向和斜率進(jìn)行預(yù)測。
- 群體分析:散點(diǎn)圖可以幫助我們觀察和識(shí)別數(shù)據(jù)點(diǎn)的聚類情況。
- 異常值檢測:散點(diǎn)圖可以用于檢測異常值或離群點(diǎn)。
3. 不適用的場景
散點(diǎn)圖不適用的分析場景包括:
- 時(shí)間序列分析:散點(diǎn)圖主要用于展示兩個(gè)變量之間的關(guān)系,對(duì)于時(shí)間序列數(shù)據(jù),通常使用折線圖或其他適合展示時(shí)間變化的圖表類型。
- 多變量分析:散點(diǎn)圖只能展示兩個(gè)變量之間的關(guān)系,對(duì)于多個(gè)變量之間的關(guān)系分析,需要使用其他圖表類型,如散點(diǎn)矩陣、平行坐標(biāo)圖等。
- 分布分析:散點(diǎn)圖主要關(guān)注變量之間的關(guān)系,而不是變量本身的分布情況。如果需要分析變量的分布特征,可以使用直方圖、箱線圖等圖表類型。
4. 分析實(shí)戰(zhàn)
散點(diǎn)圖適合尋找兩個(gè)變量之間的關(guān)系,本次分析 **空氣污染 **方面的數(shù)據(jù)情況。
4.1. 數(shù)據(jù)來源
數(shù)據(jù)來源國家統(tǒng)計(jì)局公開的數(shù)據(jù)。
用到的兩個(gè)統(tǒng)計(jì)數(shù)據(jù)分別是:
- 工業(yè)污染治理中,每年治理廢氣的投資額
- 廢氣中二氧化硫的每年排放量情況
整理好的數(shù)據(jù)可從下面的地址下載:databook.top/nation/A0C
A0C05.csv(廢氣中主要污染物排放) 和 A0C0I.csv(工業(yè)污染治理投資) 兩個(gè)文件。
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ù)是空的,所以從兩個(gè)文件中分別提取 2012~2021年期間,匯總**所有廢氣排放量(萬噸)和治理廢氣項(xiàng)目完成投資(萬元) **兩類數(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")
#治理廢氣項(xiàng)目投資 A0C0I03是治理廢氣投資的編號(hào)
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("治理廢氣項(xiàng)目完成投資(億元)")
從分析結(jié)果圖中來看,排放的廢氣量越大的時(shí)候,治理的投資費(fèi)用也越高。
但是右下角紅色框內(nèi)有一個(gè)異常值,那個(gè)是2012年的數(shù)據(jù)。
估計(jì)那時(shí)候還不太重視環(huán)保,所以即使那時(shí)候廢氣排放量大,用于治理廢氣的投資費(fèi)用也不高。
以上就是Python matplotlib實(shí)戰(zhàn)之散點(diǎn)圖繪制的詳細(xì)內(nèi)容,更多關(guān)于matplotlib散點(diǎn)圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python利用pdfplumber提取PDF文檔中的表格數(shù)據(jù)并導(dǎo)出
pdfplumber是一個(gè)功能強(qiáng)大的Python庫,可以用于解析PDF文檔并提取其中的文本、表格和圖像等內(nèi)容,下面我們就來學(xué)習(xí)一下如何使用pdfplumber提取PDF表格數(shù)據(jù)吧2023-12-12
Python一鍵實(shí)現(xiàn)PDF文檔批量轉(zhuǎn)Word
無論是在工作還是學(xué)習(xí)當(dāng)中,大家都會(huì)遇到這樣一個(gè)問題,將“PDF當(dāng)中的內(nèi)容(文本和圖片)轉(zhuǎn)換為Word的格式”,本文將用Python實(shí)現(xiàn)一鍵批量將PDF轉(zhuǎn)Word,需要的可以參考一下2022-08-08
Python 統(tǒng)計(jì)字?jǐn)?shù)的思路詳解
這篇文章主要介紹了Python 統(tǒng)計(jì)字?jǐn)?shù)的思路詳解,文中還給大家提供了不借助第三方模塊的解決方法,感興趣的朋友一起看看吧2018-05-05
Python?eval()和exec()函數(shù)使用詳解
exec函數(shù)執(zhí)行的是python語句,沒有返回值,eval函數(shù)執(zhí)行的是python表達(dá)式,有返回值,exec函數(shù)和eval函數(shù)都可以傳入命名空間作為參數(shù),本文給大家介紹下Python?eval()和exec()函數(shù),感興趣的朋友跟隨小編一起看看吧2022-11-11
Python實(shí)現(xiàn)監(jiān)控鍵盤鼠標(biāo)操作示例【基于pyHook與pythoncom模塊】
這篇文章主要介紹了Python實(shí)現(xiàn)監(jiān)控鍵盤鼠標(biāo)操作,結(jié)合實(shí)例形式分析了Python基于pyHook與pythoncom模塊的鍵盤、鼠標(biāo)事件響應(yīng)及日志文件操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-09-09
借助Paramiko通過Python實(shí)現(xiàn)linux遠(yuǎn)程登陸及sftp的操作
這篇文章主要介紹了借助Paramiko通過Python實(shí)現(xiàn)linux遠(yuǎn)程登陸及sftp,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03

