20250713-`Seaborn.pairplot` 的使用注意事項

Seaborn.pairplot 的使用注意事項

sns.pairplot 是 Seaborn 中最常用、最強大的探索性數據分析(EDA)函數之一。 它在一個調用里就能同時展示:

  • 任意兩兩變量間的 散點圖(觀察關系、聚類、異常值)
  • 對角線上每個變量的 單變量分布(直方圖 / KDE / 計數)
  • 類別變量 分組的 顏色映射(hue)

1. 基本語法

seaborn.pairplot(data,                 # 必需,DataFramevars=None,            # 指定列(默認全部數值列)x_vars=None, y_vars=None,  # 僅畫部分組合(高級用法)hue=None,             # 按該列分組上色hue_order=None,       # hue 顯示順序palette=None,         # 調色板kind='scatter',       # 非對角線子圖類型:'scatter' | 'reg' | 'kde' | 'hist'diag_kind='auto',     # 對角線:'auto' | 'hist' | 'kde' | Nonemarkers=None,         # 不同 hue 的散點形狀 ['o','s','^']height=2.5,           # 單幅子圖的高度(英寸inch)aspect=1,             # 寬高比(正方形)corner=False,         # 只畫下三角dropna=True,          # 是否丟棄缺失值plot_kws=None,        # 傳給非對角線的函數關鍵字(散點/回歸函數)diag_kws=None,        # 傳給對角線的函數關鍵字grid_kws=None         # 傳給 PairGrid 的關鍵字
)

2. 參數詳解 & 技巧

參數說明 & 示例
vars只畫關心的列:
vars=['trip_distance', 'fare_amount', 'tip']
hue按類別上色:
hue='pickup_cluster'
kind關系圖類型:
kind='reg' → 加回歸線
kind='kde' → 二維核密度
diag_kind對角線:
diag_kind='hist'(直方圖)
diag_kind='kde'(密度曲線)
corner=True只畫下三角,節省空間
height / aspect控制整張圖大小:
height=3, aspect=1.2
plot_kws傳給散點圖:
plot_kws={'alpha':0.4, 's':20}
diag_kws傳給直方圖:
diag_kws={'bins':30, 'color':'skyblue'}
markers不同 hue 的形狀:
markers=['o','s','D']

3. 最常見用法示例

準備數據:

test_cols = ['medallion', 'hack_license', 'trip_time_in_mins', 'trip_distance', 'total_amount', 'pickup_dayofweek']
df = time_bins_data[test_cols].sample(frac=0.0001)  # 從數據集中隨機抽取少量的樣本(減少計算量)
df.columns
Index(['medallion', 'hack_license', 'trip_time_in_mins', 'trip_distance','total_amount', 'pickup_dayofweek'],dtype='object')

① 快速瀏覽所有數值特征

sns.pairplot(df)
plt.show()

在這里插入圖片描述

② 只看指定列 + 按類別著色

sns.pairplot(df,vars=['trip_distance', 'total_amount', 'pickup_dayofweek'],hue='pickup_dayofweek',palette='Set2',height=3
)
plt.show()

在這里插入圖片描述

此時就出現一個問題 (hue, hue) = ('pickup_dayofweek', 'pickup_dayofweek') 子圖是空的。此時應該是 varshue 變量與核密度函數 kde 之間的沖突問題,可解決該問題的方法有以下三種:

需要注意的一個問題是: 當 diag_kind='auto'(默認值) 時,seaborn 會根據 是否指定了 hue 來自動決定對角線子圖類型:

  • 如果 hue=None(未指定) → 對角線畫 直方圖 hist
  • 如果 hue=某個列名(指定了) → 對角線畫 核密度估計 kde
  1. 不要指定 vars 的內容
sns.pairplot(df[['trip_distance', 'total_amount', 'pickup_dayofweek']],# vars=['trip_distance', 'total_amount', 'pickup_dayofweek'],hue='pickup_dayofweek',palette='Set2',# diag_kind='hist',height=3
)
plt.show()

在這里插入圖片描述

  1. vars 中不要包含 hue 列,參見 ③

  2. 指定對角線子圖的 diag_kind='hist' (前兩個方法都不會統計顯示 hue 列)

sns.pairplot(df,vars=['trip_distance', 'total_amount', 'pickup_dayofweek'],  hue='pickup_dayofweek',palette='Set2',diag_kind='hist',height=3
)
plt.show()

在這里插入圖片描述

關于顏色映射介紹可以學習這篇文章:在 Matplotlib 中選擇色彩映射 — Matplotlib 3.10.0 文檔 - Matplotlib 繪圖庫

③ 下三角 + 回歸線

sns.pairplot(df,vars=test_cols[:4],hue='pickup_dayofweek',     # 按類別分組palette='Set1',            # 顏色調色板kind='reg',          # 非對角線加回歸diag_kind='hist',    # 對角線直方圖corner=True,         # 只畫左下
)
plt.show()

在這里插入圖片描述

④ 離散類別變量的對角線

sns.pairplot(df,vars=test_cols,hue='pickup_dayofweek',     # 按類別分組palette='Set1',            # 顏色調色板plot_kws={'alpha': 0.4},     # 點透明度(提升重疊區域可讀性)diag_kind='hist',   # 對角線子圖用直方圖展示單變量分布(kde, hist)
)
plt.show()

在這里插入圖片描述

4. 返回對象 & 進一步自定義

pairplot 本質上是 PairGrid 的封裝:

g = sns.pairplot(df,vars=test_cols[2:],hue='pickup_dayofweek',     # 按類別分組palette='Set1',            # 顏色調色板plot_kws={'alpha': 0.4},     # 點透明度(提升重疊區域可讀性)diag_kind='hist',   # 對角線子圖用直方圖展示單變量分布(kde, hist)
)
g.fig.suptitle("My Pairplot", y=1.02)     # 總標題
g.set(xlim=(0, 100), ylim=(0, 100))       # 統一坐標軸范圍(需要合理設置,不然有些數據可能會無法顯示)
g.map_diag(sns.histplot, kde=True)         # 對角線子圖用直方圖展示單變量分布(kde, hist)
plt.show()
# g.savefig("pairplot.png", dpi=300, bbox_inches='tight')  # 保存

5. 常見坑 & FAQ

問題原因 & 解決
對角線空白離散變量 + KDE → 用 diag_kind='hist'
hue 列不在 vars 里把 hue 列也放進 vars 才能在對角線看到它
圖太大調小 heightcorner=True
顏色太多限制 hue_order 或使用 palette

sns.pairplot = 一次函數調用,完成所有兩兩關系 + 分布 + 分組可視化,是 EDA 的瑞士軍刀。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90972.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90972.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90972.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何選擇合適的AI論文寫作工具?七個AI英文論文寫作網站

在寫作英文論文時,許多人往往會遇到寫作思路卡殼、語言不流暢、重復率過高等問題。幸運的是,AI論文寫作工具的出現,極大地提升了寫作效率和質量。這些工具不僅可以幫你快速生成內容、擴展論點,還可以優化語言,幫助你順…

【保姆級喂飯教程】idea中安裝Conventional Commit插件

目錄前言一、安裝二、測試前言 之前了解到了Conventional Commit規范,idea中好像沒什么鉤子工具,測試一下Conventional Commit插件吧 一、安裝 點擊file-settings 點擊plugins插件,搜索Conventional Commit,點擊install安裝&…

# 電腦每次重啟都自動啟動惠普安裝程序,怎么取消?

電腦每次重啟都自動啟動惠普安裝程序,怎么取消? 一、通過任務管理器禁用: 1)右鍵點擊任務欄上的空白區域,選擇 “任務管理器”。 2)在任務管理器窗口中,點擊頂部菜單欄上的 “啟動” 選項卡。 3…

QT遇到過的樣式記錄

此帖主要記錄平常工程里遇到的qt樣式 窗口無邊框 原始文檔 void QWidget::setWindowFlag(Qt::WindowType flag, bool on true) Sets the window flag flag on this widget if on is true; otherwise clears the flag. This function was introduced in Qt 5.9. See also se…

軟件設計師中級概念題

軟件過程模型 1. 瀑布模型: 五個階段:需求分析、設計、編碼、測試、運行與維護。 為軟件的開發和維護提供了一種有效的管理模式,它是以文檔作為驅動、合適于軟件需求很明確的軟件項目模型。瀑布模型假設,一個待開發的系統需求是完…

Elasticsearch安裝、入門、基礎API操作、全文檢索、精準查詢、地理查詢、復合查詢、排序、分頁、高亮、數據聚合、自動補全、數據同步、ES集群

學習資料: 通過網盤分享的文件:Elasticsearch 鏈接: https://pan.baidu.com/s/18BxA0BH0G–jwy95uFmFZQ 提取碼: yyds 初識ES正向索引倒排索引ES與MySQL 概念對比安裝ES操作索引庫mapping屬性創建索引庫{"mappings": {"properties":…

教程:如何查看瀏覽器擴展程序的源碼

在學習前端、自動化或擴展開發時,我們常常會想研究某個瀏覽器插件的實現邏輯。即使擴展沒有公開源碼,只要我們本地安裝了它,就可以查看它的完整源代碼進行學習。? 方法一:從瀏覽器插件目錄提取源碼 第一步:打開擴展程…

虛擬儲能與分布式光伏協同優化:新型電力系統的靈活性解決方案

安科瑞顧強摘要: 在全球能源結構向低碳化、智能化加速轉型的背景下,分布式光伏的大規模接入為電力系統帶來機遇的同時,也因其波動性與間歇性帶來了運行挑戰。本文聚焦于虛擬儲能系統(Virtual Energy Storage System, VESS&#xf…

java valueOf方法

一,什么是valueOf方法?valueOf是java包裝類(比如Long,Integer等)中提供的一個靜態方法二,valueOf的主要作用是什么主要作用是將其他類型的數據轉換為當前包裝類的對象三,代碼實例:咱們以Long.valueOf為例,1,他可以接受一個long類型的數值,返回對應的Long對象(把基本類型long包…

工業平板電腦 vs 消費級平板:從防護等級到使用壽命全方面對比

平板電腦已經廣泛應用于各個行業。但你知道嗎?市面上常見的“平板”其實可以分為兩大類:工業平板電腦和消費級平板電腦。雖然它們看起來都是“平板”,但用途、性能和適用場景卻大不相同。今天,我們就來聊聊這兩者的區別&#xff0…

MySQL技術筆記-索引+慢 SQL+鎖 全鏈路優化實戰

目錄 前言 MySQL索引 一、概述 二、索引分類 (一)按功能特性分類 (二)按存儲方式分類 (三)按數據結構分類 (四)按索引字段數量分類 三、索引的優缺點 (一&…

S7-1200 與 S7-300 PNS7-400 PN UDP 通信 TIA 相同項目

7-1200 與 S7-300 PN/S7-400 PN UDP 通信 TIA 相同項目S7-1200 與 S7-300 PN 口之間的以太網通信可以通過 UDP 協議來實現,使用的通信指令是在雙方 CPU 調用通信-開放式用戶通信TSEND_C,TRCV_C(1200支持,300不支持)或T…

java進階(二)+學習筆記

面向對象設計原則1. 面向對象概念面向對象 是一種編程思想,面向過程是關注實現的步驟,每個步驟定義一個函數,調用函數執行即可。面向對象關注的是誰(對象)來執行, 把具有相同屬性和行為的一類事物(對象)進行抽象成類&#…

[附源碼+數據庫+畢業論]基于Spring Boot+mysql+vue結合內容推薦算法的學生咨詢系統

摘要 隨著互聯網的普及,學生在學習和生活中面臨著海量信息,如何高效獲取有價值的內容成為亟待解決的問題。本文基于 Spring Boot 框架,結合內容推薦算法,設計并實現了一個學生咨詢系統。系統采用 Spring Boot MyBatis MySQL Vu…

DeepSeek 微調實踐:DeepSeek-R1 大模型基于 MS-Swift 框架部署 / 推理 / 微調實踐大全

注:此文章內容均節選自充電了么創始人,CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》(跟我一起學人工智能)【陳敬雷編著】【清華大學出版社】 GPT多模態大模型與AI Agent智能體書籍本章配套視頻課程【陳敬雷】 文…

python基礎知識pip配置pip.conf文件

pip.conf一、 INI格式二、 級別三、 文件位置四、 加載順序五、 常用一、 INI格式 配置文件可以更改pip命令行選項的默認值,這個文件是使用INI格式編寫的。 INI格式 主要包含三個內容:1.節section 2.鍵值對 3.注釋 [section1] key1 value1 \\注釋 key2…

深入理解 Java JVM

文章目錄📕1. JVM簡介📕2. JVM運行流程📕3. JVM運行時數據區📕4. JVM類加載??4.1 類加載過程??4.2 雙親委派模型??4.3 破壞雙親委派模型📕5. JVM垃圾回收機制(GC機制)??5.1 判斷死亡對象…

Linux內核高效之道:Slab分配器與task_struct緩存管理

前言 在Linux內核中,進程創建與銷毀是最頻繁的操作之一。想象一下:當系統每秒需要處理成百上千次fork()和exit()調用時,如何保證task_struct(進程描述符)的分配與釋放既快速又不產生內存碎片?這就是Slab分配…

雙esp8266-01之間UDP透傳傳輸,自定義協議

使用AT模式的透傳,串口打印的數據包含pd1,4,數據打印的數據不是直接將數據打印出來,包含了pd1,4,特殊字符,針對想要直接開機直接透傳,打印數據且按照自主協議幀頭的功能進行開發。1.server程序:/*************SERVER**…

BGP 路由優選屬性(7)【MED】官方考試綜合實驗題【bgp】【acl】【ip-prefix】【route-policy】【icmp 環路】精講

目錄 一、MED 屬性介紹 二、實驗 2.1 實驗目的 2.2 拓撲圖 2.2 實驗說明 2.3 配置腳本 2.4 驗證配置 2.5 問題分析 2.7 題目需求解析 2.8 場景 1:只允許在 AS12 上操作 2.9 場景 2:只允許在 AS34 上操作 正文 一、MED 屬性介紹 MED 全稱 mu…