[Python教學] Seaborn:高階資料視覺化工具

更新於 發佈於 閱讀時間約 9 分鐘

Seaborn 是一個基於 Matplotlib 的高階資料視覺化庫,專為統計圖表設計。與 Matplotlib 相比,Seaborn 提供了更簡潔的語法、更美觀的預設樣式,以及與 Pandas 的緊密整合,非常適合用於數據分析和探索性資料分析 (EDA)。

在本教學中,我們將詳細介紹 Seaborn 的核心功能,並使用範例來展示如何繪製基本與進階圖表。


如果還沒有準備好Python的環境的話,我們推薦超好用的Python集成開發環境-PyCharm!安裝教學文章連結點此:[Python教學] 開發環境安裝與設定教學-Pycharm


1. 安裝與載入 Seaborn

確保安裝了 Seaborn 和 Pandas。如果尚未安裝,可以使用以下指令:

pip install seaborn
pip install pandas
pip install matplotlib

在程式中引入必要的模組:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

2. Seaborn 的主要特點

  1. 內建樣式: Seaborn 提供預設的美觀主題,讓圖表看起來更專業。
  2. 與 Pandas 的整合: Seaborn 可以直接接受 Pandas 的 DataFrame 作為資料來源。
  3. 簡化的語法: 繪製統計圖表更加簡潔,且支援高階功能如分組、調色板等。
  4. 內建資料集: 提供多個內建資料集,方便用於學習和測試。

3. 使用 Seaborn 的樣式設定

Seaborn 提供了多種樣式來改變圖表的外觀:

sns.set_theme(style="darkgrid")  # 設定樣式為深色網格

其他可用樣式:

  • white
  • dark
  • whitegrid
  • ticks

可以直接設定調色板:

sns.set_palette("pastel")  # 設定調色板為柔和色系

4. Seaborn 的基礎圖表

4.1 散點圖 (Scatter Plot)

# 加載內建資料集
tips = sns.load_dataset("tips")

# 繪製散點圖
sns.scatterplot(x="total_bill", y="tip", data=tips)
plt.title("Total Bill vs Tip")
plt.show()

進階:按類別上色

sns.scatterplot(x="total_bill", y="tip", hue="sex", style="time", data=tips)
plt.title("Scatterplot with Categories")
plt.show()
  • hue: 用於按類別改變顏色。
  • style: 用於改變標記的形狀。
raw-image



4.2 直方圖 (Histogram)

sns.histplot(tips["total_bill"], bins=20, kde=True)
plt.title("Distribution of Total Bill")
plt.show()
  • bins: 設置直方圖的區間數。
  • kde: 是否繪製核密度估計曲線。
raw-image



4.3 箱型圖 (Box Plot)

sns.boxplot(x="day", y="total_bill", data=tips)
plt.title("Box Plot of Total Bill by Day")
plt.show()

進階:增加分組顏色

sns.boxplot(x="day", y="total_bill", hue="sex", data=tips)
plt.title("Box Plot by Day and Sex")
plt.show()
raw-image



4.4 長條圖 (Bar Plot)

sns.barplot(x="day", y="total_bill", data=tips, errorbar="sd")
plt.title("Average Total Bill by Day")
plt.show()
  • x="day":指定X軸為「day」列,表示星期幾(如週一、週二等)。
  • y="total_bill":指定Y軸為「total_bill」列,表示每位顧客在餐廳的消費總額。
  • data=tips:指定資料來源為已載入的 tips 資料集。
  • errorbar="sd":表示誤差棒使用標準差來表示資料的變異性。每個柱子的頂部會顯示該類別的消費總額的標準差。
raw-image



4.5 熱力圖 (Heatmap)

熱力圖適合用於顯示矩陣資料,例如相關係數:

# 只選擇數值型列計算相關係數矩陣
numeric_cols = tips.select_dtypes(include=['float64', 'int64']) # 選擇數值型列
corr = numeric_cols.corr() # 計算相關係數矩陣

# 繪製熱力圖
sns.heatmap(corr, annot=True, cmap="coolwarm")
plt.title("Correlation Heatmap")
plt.show()
raw-image



5. 進階功能

5.1 配對圖 (Pair Plot)

配對圖可以一次性展示數據集中多列之間的散點圖和分布:

sns.pairplot(tips, hue="sex", diag_kind="kde")
plt.show()
  • hue: 按類別上色。
  • diag_kind: 設定對角線上的圖形類型,如直方圖或 KDE。
raw-image



5.2 分面圖 (FacetGrid)

分面圖可以按類別分組繪製多個子圖:

g = sns.FacetGrid(tips, col="sex", row="time", margin_titles=True)
g.map(sns.scatterplot, "total_bill", "tip")
plt.show()
raw-image



5.3 折線圖 (Line Plot)

fmri = sns.load_dataset("fmri")
sns.lineplot(x="timepoint", y="signal", hue="event", style="region", data=fmri)
plt.title("Line Plot Example")
plt.show()
raw-image



6. 與 Pandas 的整合

Seaborn 可以直接處理 Pandas 的 DataFrame,並按列名指定數據來源:

sns.histplot(data=tips, x="total_bill", hue="sex", kde=True)
plt.title("Histogram with Pandas Integration")
plt.show()
raw-image



7. 調整 Seaborn 圖表的外觀

7.1 圖表大小

可以使用 Matplotlib 的 plt.figure() 方法調整圖表大小:

plt.figure(figsize=(10, 6))
sns.boxplot(x="day", y="total_bill", data=tips)
plt.title("Custom Figure Size")
plt.show()

7.2 自訂調色板

Seaborn 支援多種內建調色板:

sns.set_palette("muted")  # 使用內建 muted 調色板
raw-image



8. 小結與實踐

  1. 簡單易用: Seaborn 通過簡潔的語法生成美觀的圖表。
  2. 強大功能: 支援分組繪圖、分面圖及內建樣式。
  3. 與 Pandas 整合: 輕鬆處理 DataFrame 資料。


9. 課後練習

  1. 使用內建資料集 tips,繪製「每天平均小費」的柱狀圖。
  2. 使用自己的數據,生成一個相關係數的熱力圖。
  3. 將 Seaborn 的繪圖與 Matplotlib 的自訂功能結合,製作報表。

通過不斷練習和實際應用,你將能夠熟練使用 Seaborn 為資料分析提供清晰且專業的視覺化圖表!

留言
avatar-img
留言分享你的想法!
avatar-img
追極光的北極熊|軟體工程師的小天地
9會員
144內容數
歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
本文介紹了流行的Python套件NLTK(Natural Language Toolkit)的主要特點、功能和在中文和英文語料上的應用。從安裝到實際應用,深入介紹了分詞、停用詞去除、詞性標註、命名實體識別等NLP任務的具體實現和步驟,幫助讀者理解和應用NLTK。
Thumbnail
本文介紹了流行的Python套件NLTK(Natural Language Toolkit)的主要特點、功能和在中文和英文語料上的應用。從安裝到實際應用,深入介紹了分詞、停用詞去除、詞性標註、命名實體識別等NLP任務的具體實現和步驟,幫助讀者理解和應用NLTK。
Thumbnail
對於剛開始接觸Python的新手來說,無疑會在眾多執行環境中迷茫,不知道應該選擇哪一個比較好? 在這個情況下,我會推薦一個好的起點– Anaconda。現在,讓我們花費一分鐘的時間,我將引導你成功安裝Anaconda,並且正式開啟你在資料科學領域的旅程!
Thumbnail
對於剛開始接觸Python的新手來說,無疑會在眾多執行環境中迷茫,不知道應該選擇哪一個比較好? 在這個情況下,我會推薦一個好的起點– Anaconda。現在,讓我們花費一分鐘的時間,我將引導你成功安裝Anaconda,並且正式開啟你在資料科學領域的旅程!
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
想在 Notion 建立動態視覺圖表,通常都還會需要額外的外掛或小工具。因此本篇我們要和大家分享一個實用的工具 — ChartBase。ChartBase 是一款專為 Notion 打造的工具,提供了豐富多樣的動態視覺圖表選項,讓你能不再僅靠文字或數字,能透過動態視覺圖表將複雜的資料呈現得直觀易懂。
Thumbnail
想在 Notion 建立動態視覺圖表,通常都還會需要額外的外掛或小工具。因此本篇我們要和大家分享一個實用的工具 — ChartBase。ChartBase 是一款專為 Notion 打造的工具,提供了豐富多樣的動態視覺圖表選項,讓你能不再僅靠文字或數字,能透過動態視覺圖表將複雜的資料呈現得直觀易懂。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News