[Python]pandas畫圖來了解資料結構(熱力、分佈、散佈、成對關係圖)

更新 發佈閱讀 1 分鐘


接續上一篇文章,使用kaggle平台上的數據資料來實作說明。

[Python ]pandas基本操作,查看、新增、修改資料

pandas (pd) 來畫圖了解 MentalHealthSurvey 資料結構,圖表可以幫助你直觀地瞭解 MentalHealthSurvey 資料的結構和變數之間的關係。才有辦法進一步的在去做資料分析。


繪製分佈圖 (Histogram)

hist() 函式用來繪製數值型資料的直方圖,這有助於了解各變數的數值分佈情況。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('F:/python/crab/pandas/MentalHealthSurvey.csv')
df.hist(bins=30, figsize=(15, 10))
plt.show()
  • bins=30: 指定直方圖中分箱的數量,越多的分箱能夠顯示更細節的分佈。
  • figsize=(15, 10): 設定圖表的大小,以便更清晰地查看。
  • plt.show(): 顯示圖表。
資料分佈圖

資料分佈圖


繪製相關矩陣圖 (Correlation Matrix)

heatmap() 函式用於繪製數據的熱力圖,特別是相關矩陣,來顯示變數之間的相關性。

import seaborn as sns
plt.figure(figsize=(12, 8))
sns.heatmap(df.corr(), annot=True, cmap='coolwarm', linewidths=0.5)
plt.show()
  • df.corr(): 計算數據框中各數值型變數之間的相關係數。
  • annot=True: 在每個單元格中顯示相關係數的數值。
  • cmap='coolwarm': 指定顏色地圖,用於更直觀地表示相關性強弱。
  • linewidths=0.5: 設置網格線的寬度。
  • plt.show(): 顯示圖表。

熱力圖(Heatmap)顯示的相關係數用來衡量兩個變數之間的線性關係,相關係數的範圍為 -1 到 1。

  • 相關性最弱是 0:當相關係數為 0 時,表示兩個變數之間沒有線性關係。
  • 負號表示負相關:相關係數為負數時,表示兩個變數之間存在負相關關係,當一個變數增加時,另一個變數傾向於減少。負相關係數越接近 -1,表示負相關性越強。

因此,相關性最弱的情況是相關係數為 0,此時兩個變數之間沒有線性關係。負號並不表示相關性最弱,而是表示相關性方向相反。

斜線切下來的數值1,因為自己跟自己比當然最相關,理所當然是1,可以明白的了解那些變數與那些變數相關性是特別強的,有助於後續的資料分析。

raw-image

繪製散佈圖 (Scatter Plot)

散佈圖用於分析兩個數值型變數之間的關係。

df.plot(kind='scatter', x='variable1', y='variable2', alpha=0.5)
plt.show()
kind='scatter': 指定圖表類型為散佈圖。
  • x='variable1', y='variable2': 指定橫軸和縱軸的變數。
  • alpha=0.5: 設置點的透明度,以避免過度疊加時看不清楚。
  • plt.show(): 顯示圖表。

根據上面的熱力圖,我們來挑選看起來相關性特別強特別弱的來比較看看。

看起來就depressionanxiety相關性最高0.84顏色最深。

df.plot(kind='scatter', x='depression', y='anxiety', alpha=0.5)
plt.show()

幾乎有部分資料都是重疊在一起了。點的分布呈現了一種往上的直線,代表他們有正相關

raw-image

最後挑選與depression相關性較弱的financial_concerns來比較一下。

# 創建顏色映射
colors = plt.cm.viridis(df['depression'] / df['depression'].max())
df.plot(kind='scatter', x='depression', y='financial_concerns', c=colors, alpha=0.5)
plt.show()

這個圖跟上面那張圖相比,就雜亂不堪,看的出來沒有什麼相關性。

raw-image


最後看負相關系數最高的兩個變數

isolationsocial_relationships 有-0.56的關係 ,就看比較深的點,來判斷是否有負關聯。

# 創建顏色映射
colors = plt.cm.viridis(df['isolation'] / df['isolation'].max())

df.plot(kind='scatter', x='isolation', y='social_relationships', c=colors, alpha=0.5)
plt.show()
raw-image


點的分佈模式

  • 如果點分佈呈現出某種模式(例如一條向上的直線),則說明 variable1variable2 之間存在正相關關係。
  • 如果點分佈呈現出一條向下的直線,則說明存在負相關關係。
  • 如果點分佈雜亂無章,沒有明顯的模式,則表示兩者之間可能沒有明顯的線性關係。

繪製成對關係圖 (Pairplot)

pairplot() 用於展示多個數值型變數之間的成對關係,生成一組散佈圖和對角線上的分佈圖。

sns.pairplot(df)
plt.show()
  • sns.pairplot(df): 自動繪製數據框中數值型變數之間的成對關係圖。
  • plt.show(): 顯示圖表。


raw-image

成對關係圖是一個強大的工具,用於視覺化多個變數之間的兩兩關係。它可以幫助你快速了解變數之間的有無關聯性分佈情況以及是否存在異常值或其他模式。這在數據探索和初步分析中非常有用






留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
153會員
297內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2024/09/14
生成器表達式是 Python 中一種更簡潔的語法,專門用來創建生成器。它的語法與列表生成式類似,但將列表生成式中的方括號 [] 替換為小括號 ()。生成器表達式與生成器函數類似,具有「惰性評估」的特性,因此它只在需要時才生成元素,從而節省記憶體。 生成器的「惰性評估」(也叫延遲求值)指的是生成器不
Thumbnail
2024/09/14
生成器表達式是 Python 中一種更簡潔的語法,專門用來創建生成器。它的語法與列表生成式類似,但將列表生成式中的方括號 [] 替換為小括號 ()。生成器表達式與生成器函數類似,具有「惰性評估」的特性,因此它只在需要時才生成元素,從而節省記憶體。 生成器的「惰性評估」(也叫延遲求值)指的是生成器不
Thumbnail
2024/09/01
包含著日期型資料在許多不同領域的分析中都非常重要,特別是當數據涉及隨時間變化的趨勢、模式或週期時,例如房價,股票價格分析等等。 如何將一個日期欄位改為 DataFrame 的索引,你可以使用 set_index() 方法。 實作範例數據來源 處理步驟 確保日期欄位是 datetime
Thumbnail
2024/09/01
包含著日期型資料在許多不同領域的分析中都非常重要,特別是當數據涉及隨時間變化的趨勢、模式或週期時,例如房價,股票價格分析等等。 如何將一個日期欄位改為 DataFrame 的索引,你可以使用 set_index() 方法。 實作範例數據來源 處理步驟 確保日期欄位是 datetime
Thumbnail
2024/09/01
為了讓資料更適合進行後續的分析、建立模型,模型的決策準確性,資料探索與清理是資料分析過程中非常重要的步驟,主要目的在於確保資料的品質和可靠性。 因為前幾篇的例子中的資料,並沒有缺失值與重複值的部分,我另外找了一份有包含的資料來做案例分析,由於找到的資料沒有重複值的部分,故本文主要解釋處理缺失值的部
Thumbnail
2024/09/01
為了讓資料更適合進行後續的分析、建立模型,模型的決策準確性,資料探索與清理是資料分析過程中非常重要的步驟,主要目的在於確保資料的品質和可靠性。 因為前幾篇的例子中的資料,並沒有缺失值與重複值的部分,我另外找了一份有包含的資料來做案例分析,由於找到的資料沒有重複值的部分,故本文主要解釋處理缺失值的部
Thumbnail
看更多
你可能也想看
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
Thumbnail
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News