【資料分析】Seaborn 常用視覺化基礎操作語法彙整

更新於 2024/08/22閱讀時間約 12 分鐘
raw-image

Seaborn 是一個基於 Matplotlib 的 Python 資料視覺化庫,旨在使統計圖形的繪製更加簡便且美觀。它特別適合進行探索性數據分析,並且提供了許多方便的 API 來快速生成各類圖形。


# 可使用目錄功能快速確認要閱覽的主題


該使用 Seaborn 還是使用 Matplotlib ?

  • Matplotlib 適合需要高度自定義和控制的情況,尤其是在進行更複雜的、非標準的視覺化時。
  • Seaborn 適合進行快速的探索性數據分析,或是在需要美觀的統計圖表時使用。它特別適合與 Pandas 數據框整合,用於視覺化數據的分佈和關係。

Seaborn 提供了一個簡單且美觀的方式來進行資料視覺化,尤其是在進行統計分析時。Matplotlib 則提供了更靈活和強大的自定義功能,但可能需要更多的代碼和設置。兩者常常被結合使用,根據需要選擇適合的工具來進行視覺化。

【資料分析】python資料視覺化,Matplotlib基礎操作語法彙整


該選擇什麼圖來表現數據?

  • 散佈圖 sns.scatterplot: 當你想探索兩個連續變數之間的關係時,使用散佈圖。
  • 折線圖 sns.lineplot: 當你需要展示數據隨時間或其他連續變數變化的趨勢時,使用折線圖。
  • 柱狀圖 sns.barplot: 當你想比較分類變數的平均值或總值時,使用柱狀圖。
  • 直方圖 sns.histplot: 當你需要了解數據的分佈狀況時,使用直方圖。
  • 箱線圖 sns.boxplot: 當你想展示數據的集中趨勢及離群點時,使用箱線圖。
  • 熱力圖 sns.heatmap: 當你想可視化變數之間的相關性或矩陣數據時,使用熱力圖。
  • 成對圖 sns.pairplot: 當你需要同時查看多個變數之間的兩兩關係時,使用成對關係圖。


散佈圖 sns.scatterplot

用於顯示兩個數值變量之間的關係,並可以通過顏色和大小來表示其他維度。

import seaborn as sns
import matplotlib.pyplot as plt

# 加載內建的 iris 數據集
iris = sns.load_dataset("iris")

# 繪製散佈圖
sns.scatterplot(x="sepal_length", y="sepal_width", hue="species", data=iris)
plt.show()
raw-image

適合情境

  • 變數間的關係:當你想要觀察兩個連續變數之間的關係時,散佈圖是理想的選擇。例如,觀察總賬單金額 (total_bill) 與小費 (tip) 之間的關係。
  • 分類變數的影響:你可以使用 huestylesize 參數來檢視分類變數如何影響變數之間的關係。


散佈圖參數調整

import seaborn as sns
import matplotlib.pyplot as plt

# 生成樣本數據
tips = sns.load_dataset("tips")

# 繪製散佈圖
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="day", style="time", size="size", palette="viridis", alpha=0.7)

plt.title('Scatterplot of Total Bill vs Tip')
plt.show()
raw-image


參數說明

  • x:X 軸數據
  • y:Y 軸數據
  • hue:根據某變量的值來調整點的顏色
  • style:根據某變量的值來調整點的樣式
  • size:根據某變量的值來調整點的大小
  • palette:設置顏色調色盤
  • alpha:設置點的透明度


折線圖 sns.lineplot

用於顯示數值變量隨著某一維度(通常是時間)變化的趨勢。

# 加載內建的 flights 數據集
flights = sns.load_dataset("flights")

# 繪製折線圖
sns.lineplot(x="year", y="passengers", data=flights)
plt.show()
raw-image


適合情境

  • 時間序列分析:當你想要觀察變數隨著時間的變化趨勢時,折線圖非常適合。例如,觀察某產品在一段時間內的銷售趨勢。
  • 多組比較:當你有多組數據需要在同一張圖中比較時,使用 huestyle 來區分不同的組別。


折線圖參數調整

# 繪製折線圖
sns.lineplot(data=tips, x="size", y="total_bill", hue="day", style="time", markers=True, dashes=False, errorbar="sd")

plt.title('Lineplot of Total Bill by Party Size')
plt.show()
raw-image


參數說明

  • x:X 軸數據
  • y:Y 軸數據
  • hue:根據某變量的值來調整線條顏色
  • style:根據某變量的值來調整線條樣式
  • markers:設置是否顯示標記點
  • dashes:設置是否顯示虛線
  • errorbar:設置置信區間


柱狀圖 sns.barplot

用於顯示類別變量與數值變量之間的關係,通常用於比較不同組別的平均值。

# 繪製柱狀圖
sns.barplot(x="species", y="sepal_width", data=iris)
plt.show()
raw-image


適合情境

  • 分類變數的比較:當你想要比較分類變數的平均值或總值時,柱狀圖是理想的選擇。例如,觀察不同日期的總賬單金額的平均值。
  • 組間比較:使用 hue 可以觀察不同組別間的差異,例如性別對總賬單金額的影響。


柱狀圖參數調整

# 繪製條形圖
sns.barplot(data=tips, x="day", y="total_bill", hue="sex", errorbar="sd", palette="coolwarm")

plt.title('Barplot of Total Bill by Day and Sex')
plt.show()
raw-image


參數說明

  • x:X 軸數據(分類變量)
  • y:Y 軸數據(數值變量)
  • hue:根據某變量的值來調整柱子的顏色
  • errorbar:設置置信區間
  • estimator:設置用於計算條形高度的函數(默認為平均值)
  • palette:設置顏色調色盤


直方圖 sns.histplot

用於顯示數值變量的分佈情況,可以用於單一變量或多變量的直方圖繪製。

# 繪製直方圖
sns.histplot(iris["sepal_length"], kde=True)
plt.show()
raw-image


適合情境

  • 數據分佈:當你想要了解某個變數的數據分佈時,直方圖是最佳選擇。例如,觀察顧客的小費分佈情況。
  • 多組分佈比較:使用 hue 可以觀察不同組別的數據分佈情況,例如性別對小費分佈的影響。


直方圖參數調整

# 繪製直方圖
sns.histplot(data=tips, x="total_bill", hue="sex", bins=20, kde=True, palette="magma")

plt.title('Histogram of Total Bill')
plt.show()
raw-image


參數說明

  • x:X 軸數據
  • y:Y 軸數據(可選)
  • hue:根據某變量的值來調整顏色
  • bins:設置直方圖的分箱數量
  • multiple:設置如何處理不同類別的數據(例如 stackdodge
  • kde:設置是否顯示核密度估計


熱力圖 sns.heatmap

用於顯示矩陣數據的顏色編碼表示,通常用於顯示相關矩陣或數據透視表。

# 繪製熱力圖
flights_pivot = flights.pivot("month", "year", "passengers")
sns.heatmap(flights_pivot, annot=True, fmt="d")
plt.show()
raw-image


適合情境

  • 相關矩陣的可視化:當你想要檢視多個變數之間的相關性時,熱力圖是一個很好的工具。例如,觀察各變數之間的相關係數。
  • 矩陣數據的可視化:可以用來表示其他類型的矩陣數據,例如混淆矩陣。


熱力圖參數調整

# 繪製熱力圖
correlation_matrix = tips.corr()

sns.heatmap(data=correlation_matrix, annot=True, fmt=".2f", cmap="coolwarm", linewidths=0.5, linecolor="black")

plt.title('Correlation Matrix Heatmap')
plt.show()
raw-image


參數說明

  • data:矩陣數據(如相關矩陣)
  • annot:設置是否在每個格子中顯示數值
  • fmt:設置顯示數值的格式(如 .2f 顯示兩位小數)
  • cmap:設置顏色地圖
  • linewidths:設置格子之間的間隔線寬度
  • linecolor:設置格子之間的間隔線顏色


成對圖 sns.pairplot

用於顯示數據集中所有變量之間的成對關係,特別適合初步探索數據的關聯性。

# 繪製成對圖
sns.pairplot(iris, hue="species")
plt.show()
raw-image


適合情境

  • 變數之間的成對關係:當你想要觀察多個變數之間的成對關係時,成對關係圖可以幫助你一次性查看所有變數的兩兩關係。例如,觀察小費數據集中的所有變數之間的關係。
  • 數據探索:在初步探索數據集時,可以快速了解數據集中各變數之間的關聯和分佈情況。


成對圖參數調整

# 繪製成對關係圖
sns.pairplot(data=tips, hue="sex", palette="husl", kind="scatter", diag_kind="kde")

plt.title('Pairplot of Tips Dataset')
plt.show()
raw-image


參數說明

  • hue:根據某變量的值來調整顏色
  • palette:設置顏色調色盤
  • kind:設置散佈圖的類型(如 scatterkde
  • diag_kind:設置對角線圖的類型(如 histkde


箱線圖 sns.boxplot

用於顯示數值變量的分佈情況及其異常值,通常用於比較多個組別的數值變量。

# 繪製箱線圖
sns.boxplot(x="species", y="sepal_length", data=iris)
plt.show()
raw-image


適合情境

  • 數據的集中趨勢與離群點:當你需要觀察數據的集中趨勢(如中位數)和數據的離群點時,箱線圖是非常有用的。例如,觀察不同日期的總賬單金額分佈及離群點。
  • 組間分佈比較:使用 hue 可以比較不同組別之間的數據分佈差異,例如性別對總賬單金額分佈的影響。


箱線圖參數調整

# 繪製箱線圖
sns.boxplot(data=tips, x="day", y="total_bill", hue="sex", palette="Set2", fliersize=5)

plt.title('Boxplot of Total Bill by Day and Sex')
plt.show()
raw-image


參數說明

  • x:X 軸數據(分類變量)
  • y:Y 軸數據(數值變量)
  • hue:根據某變量的值來調整箱線圖的顏色
  • palette:設置顏色調色盤
  • fliersize:設置離群點的大小
  • width:設置箱線圖的寬度
avatar-img
7會員
20內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
JayRay 的沙龍 的其他內容
特徵工程是機器學習中的核心技術,通過將原始數據轉換為有意義的特徵,以提升模型的準確性和穩定性。常見的特徵工程方法包括異常值檢測、特徵轉換、特徵縮放、特徵表示、特徵選擇和特徵提取。本文將深入探討這些方法的適用情況及具體實施流程,以幫助讀者有效利用特徵工程來優化機器學習模型表現。
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
本文介紹了在進行資料分析時,將類別欄位轉換為數值欄位的方法,包括Label Encoding、One-Hot Encoding、Binary Encoding、Target Encoding和Frequency Encoding。每種方法的應用範例、優缺點和適用場景都有詳細說明。
資料前處理(Data Preprocessing)中的重要角色-缺失值處理。從檢查、刪除到填充缺失值,以及插值法和機器學習算法的應用方法。Pandas 缺失值處理基礎方法、進階填充缺失值、鐵達尼號存活預測資料集的示例和機器學習算法填補缺失值方法的介紹與使用。
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
特徵工程是機器學習中的核心技術,通過將原始數據轉換為有意義的特徵,以提升模型的準確性和穩定性。常見的特徵工程方法包括異常值檢測、特徵轉換、特徵縮放、特徵表示、特徵選擇和特徵提取。本文將深入探討這些方法的適用情況及具體實施流程,以幫助讀者有效利用特徵工程來優化機器學習模型表現。
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
本文介紹了在進行資料分析時,將類別欄位轉換為數值欄位的方法,包括Label Encoding、One-Hot Encoding、Binary Encoding、Target Encoding和Frequency Encoding。每種方法的應用範例、優缺點和適用場景都有詳細說明。
資料前處理(Data Preprocessing)中的重要角色-缺失值處理。從檢查、刪除到填充缺失值,以及插值法和機器學習算法的應用方法。Pandas 缺失值處理基礎方法、進階填充缺失值、鐵達尼號存活預測資料集的示例和機器學習算法填補缺失值方法的介紹與使用。
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
資料分析就像廚師料理一樣,但你知道可以分成哪9大流程嗎?一起看看資料分析流程和廚師料理有多像!
Thumbnail
資料分析三個主要的目的分別是探索性、解釋性及預測性。看看他們在方法及複雜度上有什麼差異,以及適用的情境。
Thumbnail
決定「分析單位」是資料分析執行前,最需要確認的項目;決定了「分析單位」等同於決定分析結果數據呈現方式、解讀和應用方法。讓我們一起了解「分析單位」到底是什麼?什麼會決定分析單位?以及沒有弄清楚分析單位會有什麼影響?
Thumbnail
上一篇介紹了 Python 中的條件判斷,方法是透過了自動程式條件式判斷,以不同劇本的方式來執行動作。然而實際情況下,我們還常會遇到一種問題,就是必須重複執行某些相同的步驟,而迴圈(loop)的設計就是為了解決此「重複執行」的一種控制結構,讓我們可以在條件符合的情況下利用迴圈執行資料的輸入、處理與輸
Thumbnail
經歷過第一次的課程內容後,我們已經初步理解到Python的基本運算功能,接下來就要開始進入到高階語言都有的程式控制邏輯,先來個小小開胃菜—條件判斷。 if敘述 直接來帶範例會比較清楚理解: 第一次我們輸入國文分數為50分,由於數值50並沒有大於60,第一個if敘述的condition條件判斷就會是F
Thumbnail
首先,聊聊我與SimilarWeb的不解之緣😊,以前在媒體界擔任產品經理時,老闆最愛問下屬的一件事,別人家競品的網站狀況如何?流量如何?廣告策略有哪些?可是坦白說,沒有認識到別家公司內部員工的話,誰有辦法清楚知道,這時只能想些折衷的辦法,去翻翻網路資訊,或請教一些數位界的前輩,了解是否有哪些第三方
Thumbnail
前幾年因為工作方面的需求,花了一些時間自學了Python,進行網站爬蟲與資料分析,但近期由於職務的轉換,Python的實作應用機會減少了許多,對於code撰寫的敏感度也因此降低不少,趁著上個月看到勞動力職能發展協會官網有一門新課程「Python大數據資料探勘分析應用班」正在線上招生,想說既然政府與公
Thumbnail
最近在公司跟資料科學家一起討論了產品推薦機制的運作邏輯,才開始理解了甚麼是關聯分析(Associative Analysis),覺得挺有趣的,想說把學習心得記錄下來,藉此機會跟大家分享。 接著下來,我們就以「樂屋網」產品的使用者行為資料庫,做為假設的範例,進行簡單的解釋說明。 條件機率與貝氏定理
Thumbnail
這一次在高雄上課,租用昂貴的電腦教室,只是很可惜,這家巨匠居然沒有安裝office,只有開放原始碼的試算表,有一點卡卡的,影響我的教學。 趁學員陸續到期,趕緊教他們下載資料;下載資料對我來說雖然簡單,但對於這一批學員來說,卻可能是第一次操作;還好很多學員立即學會,也立馬變身為種子教官,教會旁邊的學員
Thumbnail
EXCEL應該是最多朋友會使用的工具,因為如果能善用EXCEL來分析手邊的股價資訊,必然能有極大的幫助。 雖然說現在市面上有非常多既有的既定工具,但資料在自己手上,分析方法由自己決定,長期來說還是比較好。 今天來講一個簡單的敘述統計...
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
資料分析就像廚師料理一樣,但你知道可以分成哪9大流程嗎?一起看看資料分析流程和廚師料理有多像!
Thumbnail
資料分析三個主要的目的分別是探索性、解釋性及預測性。看看他們在方法及複雜度上有什麼差異,以及適用的情境。
Thumbnail
決定「分析單位」是資料分析執行前,最需要確認的項目;決定了「分析單位」等同於決定分析結果數據呈現方式、解讀和應用方法。讓我們一起了解「分析單位」到底是什麼?什麼會決定分析單位?以及沒有弄清楚分析單位會有什麼影響?
Thumbnail
上一篇介紹了 Python 中的條件判斷,方法是透過了自動程式條件式判斷,以不同劇本的方式來執行動作。然而實際情況下,我們還常會遇到一種問題,就是必須重複執行某些相同的步驟,而迴圈(loop)的設計就是為了解決此「重複執行」的一種控制結構,讓我們可以在條件符合的情況下利用迴圈執行資料的輸入、處理與輸
Thumbnail
經歷過第一次的課程內容後,我們已經初步理解到Python的基本運算功能,接下來就要開始進入到高階語言都有的程式控制邏輯,先來個小小開胃菜—條件判斷。 if敘述 直接來帶範例會比較清楚理解: 第一次我們輸入國文分數為50分,由於數值50並沒有大於60,第一個if敘述的condition條件判斷就會是F
Thumbnail
首先,聊聊我與SimilarWeb的不解之緣😊,以前在媒體界擔任產品經理時,老闆最愛問下屬的一件事,別人家競品的網站狀況如何?流量如何?廣告策略有哪些?可是坦白說,沒有認識到別家公司內部員工的話,誰有辦法清楚知道,這時只能想些折衷的辦法,去翻翻網路資訊,或請教一些數位界的前輩,了解是否有哪些第三方
Thumbnail
前幾年因為工作方面的需求,花了一些時間自學了Python,進行網站爬蟲與資料分析,但近期由於職務的轉換,Python的實作應用機會減少了許多,對於code撰寫的敏感度也因此降低不少,趁著上個月看到勞動力職能發展協會官網有一門新課程「Python大數據資料探勘分析應用班」正在線上招生,想說既然政府與公
Thumbnail
最近在公司跟資料科學家一起討論了產品推薦機制的運作邏輯,才開始理解了甚麼是關聯分析(Associative Analysis),覺得挺有趣的,想說把學習心得記錄下來,藉此機會跟大家分享。 接著下來,我們就以「樂屋網」產品的使用者行為資料庫,做為假設的範例,進行簡單的解釋說明。 條件機率與貝氏定理
Thumbnail
這一次在高雄上課,租用昂貴的電腦教室,只是很可惜,這家巨匠居然沒有安裝office,只有開放原始碼的試算表,有一點卡卡的,影響我的教學。 趁學員陸續到期,趕緊教他們下載資料;下載資料對我來說雖然簡單,但對於這一批學員來說,卻可能是第一次操作;還好很多學員立即學會,也立馬變身為種子教官,教會旁邊的學員
Thumbnail
EXCEL應該是最多朋友會使用的工具,因為如果能善用EXCEL來分析手邊的股價資訊,必然能有極大的幫助。 雖然說現在市面上有非常多既有的既定工具,但資料在自己手上,分析方法由自己決定,長期來說還是比較好。 今天來講一個簡單的敘述統計...