[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的沙龍
141會員
253內容數
本業是影像辨識軟體開發,閒暇時間進修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
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
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() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,將資料表做樞紐轉換,垂直方向是月份,水平方向是不同的城市,而表格內容是該城市在某個月份的溫度。 題目的原文敘述 測試範例 Example 1: Input: +--------------+-
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,將資料表做樞紐轉換,垂直方向是月份,水平方向是不同的城市,而表格內容是該城市在某個月份的溫度。 題目的原文敘述 測試範例 Example 1: Input: +--------------+-
Thumbnail
過往我們有介紹了「【Google Colab Python系列】 資料處理神器 Pandas 起手式」, 相信對於pandas的基本操作具有一定的基礎知識了, 主要著重在基本的操作, 讓我們快速篩選與分析資料, 但真實的世界是有可能具有很多類型的資料集分別儲存, 而不同的資料集又具有一些相似度, 需
Thumbnail
過往我們有介紹了「【Google Colab Python系列】 資料處理神器 Pandas 起手式」, 相信對於pandas的基本操作具有一定的基礎知識了, 主要著重在基本的操作, 讓我們快速篩選與分析資料, 但真實的世界是有可能具有很多類型的資料集分別儲存, 而不同的資料集又具有一些相似度, 需
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News