網(wǎng)站首頁 編程語言 正文
前言
在本文中,我們將介紹10個示例,以掌握如何使用用于Python的Seaborn庫創(chuàng)建圖表。
任何數(shù)據(jù)產(chǎn)品的第一步都應該是理解原始數(shù)據(jù)。對于成功和高效的產(chǎn)品,這一步驟占據(jù)了整個工作流程的很大一部分。
有幾種方法用于理解和探索數(shù)據(jù)。其中之一是創(chuàng)建數(shù)據(jù)可視化。它們幫助我們探索和解釋數(shù)據(jù)。
通過創(chuàng)建適當和設(shè)計良好的可視化,我們可以發(fā)現(xiàn)數(shù)據(jù)中的底層結(jié)構(gòu)和關(guān)系。
分布區(qū)在數(shù)據(jù)分析中起著至關(guān)重要的作用。它們幫助我們檢測異常值和偏態(tài),或獲得集中趨勢(平均值、中值和模態(tài))度量的概述。
對于示例,我們將使用Kaggle上可用的墨爾本住房數(shù)據(jù)集中的一個小樣本。
我們從導入庫并將數(shù)據(jù)集讀入Pandas數(shù)據(jù)幀開始。
import?pandas?as?pd?
import?seaborn?as?sns?
sns.set(style="darkgrid",?font_scale=1.2)?
df?=?pd.read_csv(?
??"/content/melb_housing.csv",??
??usecols=["Regionname",?"Type",?"Rooms",?"Distance",?"Price"]?
)?
df.head()
該數(shù)據(jù)集包含了墨爾本房屋的一些特征及其價格。
Seaborn的離散函數(shù)允許創(chuàng)建3種不同類型的分布區(qū),分別是:
- 柱狀圖
- Kde(核密度估計)圖
- Ecdf圖
我們只需要調(diào)整kind參數(shù)來選擇plot的類型。
示例 1
第一個例子是創(chuàng)建一個基本直方圖。它將連續(xù)變量的取值范圍劃分為離散的箱子,并顯示每個箱子中有多少個值。
sns.displot(?
??data=df,?
??x="Price",?
??kind="hist",?
??aspect=1.4?
)
我們將df的名稱傳遞給數(shù)據(jù)參數(shù)。參數(shù)x接受要繪制的列名。aspect參數(shù)調(diào)整大小的寬高比。它也可以改變高度。
示例 2
在第一個例子中,我們可以清楚地看到價格欄中有一些異常值。柱狀圖在右邊有一條長尾,這表明價格非常高的房子很少。
減少這種異常值影響的一種方法是對值取對數(shù)。displot函數(shù)可以使用log_scale參數(shù)執(zhí)行此操作。
sns.displot(?
??data=df,?
??x="Price",?
??kind="hist",?
??aspect=1.4,?
??log_scale=10?
)
價格以10的冪表示。現(xiàn)在我們對房價的分布有了一個更好的概述。
示例 3
我們還可以調(diào)整直方圖中的箱數(shù)量。在某些情況下,最好使用較少的箱數(shù)量,這樣我們就可以得到一個更結(jié)構(gòu)化的概述。
用于此調(diào)整的參數(shù)是box。
sns.displot(?
??data=df,?
??x="Price",?
??kind="hist",?
??aspect=1.4,?
??log_scale=10,?
??bins=20?
)
示例 4
數(shù)據(jù)集還包含分類變量。例如,類型列有3個類別,分別是h(房屋)、t(聯(lián)排房屋)和u(單位)。我們可能需要分別檢查每款的分布情況。
一種選擇是在相同的可視化中用不同的顏色顯示它們。我們只需要將列的名稱傳遞給hue參數(shù)。
sns.displot(?
??data=df,?
??x="Price",?
??hue="Type",?
??kind="hist",?
??aspect=1.4,?
??log_scale=10,?
??bins=20?
)
這個圖為我們提供了2條信息:
- 每個類別的大小與房屋的數(shù)量有關(guān)。h類是最大的一類。
- 每類房屋的價格分布。
示例 5
另一個檢查每個類別分布的選項是創(chuàng)建單獨的子圖。我們可以對這個任務使用col或row參數(shù)。給定列中的每個類別都有一個子圖。
sns.displot(?
??data=df,?
??x="Price",?
??col="Type",?
??kind="hist",?
??aspect=1.4,?
??log_scale=10,?
??bins=20?
)
例子 6
displot函數(shù)還允許生成二維直方圖。因此,我們得到了關(guān)于兩列中值的觀察值(即行)分布的概述。
我們使用價格和距離列創(chuàng)建一個。我們只是將列名傳遞給x和y參數(shù)。
sns.displot(?
??data=df,?
??x="Price",?
??y="Distance",?
??col="Type",?
??kind="hist",?
??height=5,?
??aspect=1.2,?
??log_scale=(10,0),?
??bins=20?
)
較暗的區(qū)域密度更大,所以它們包含了更多的觀測數(shù)據(jù)。兩列看起來都是正態(tài)分布,因為密集的區(qū)域在中心。
你可能已經(jīng)注意到,我們使用了一個元組作為log_scale參數(shù)的參數(shù)。因此,我們可以為每個列傳遞不同的比例。
例子 7
Kde圖還可以用于可視化變量的分布。它們和直方圖很相似。然而,kde圖使用連續(xù)的概率密度曲線來表示分布,而不是使用離散的箱。
kind參數(shù)設(shè)置為“kde”,以生成kde圖。
sns.displot(?
??data=df,?
??x="Price",?
??kind="kde",?
??aspect=1.4,?
??log_scale=10?
)
示例 8
與直方圖類似,可以為不同的類別分別繪制kde圖。我們的數(shù)據(jù)集包含房屋的區(qū)域信息。我們看看不同地區(qū)的價格變化。
sns.displot(?
??data=df,?
??x="Price",?
??hue="Regionname",?
??kind="kde",?
??height=6,?
??aspect=1.4,?
??log_scale=10?
)
南方大都市區(qū)的平均房價似乎最高。
示例 9
另一種檢查變量分布的方法是使用ecdf圖。它表示低于給定列中每個唯一值的觀察值的比例或計數(shù)。
這是一種可視化的累計和。因此,我們能夠看到更密集的值范圍。
sns.displot(?
??data=df,?
??x="Distance",?
??kind="ecdf",?
??height=6,?
??aspect=1.4,?
??stat="count"?
)
曲線斜率高的值范圍有更多的觀測值。例如,我們沒有很多房子的距離超過30。與此相反,在10到15的距離范圍內(nèi)有很多房子。
示例10
ecdf圖也支持hue、col和row參數(shù)。因此,我們可以在一個列中區(qū)分不同類別之間的分布。
sns.displot(?
??data=df,?
??x="Distance",?
??kind="ecdf",?
??hue="Type",?
??height=6,?
??aspect=1.4,?
??stat="count"?
)
對于數(shù)據(jù)分析或機器學習任務,了解變量(即特征)的分布是非常重要的。我們?nèi)绾翁幚斫o定的任務可能取決于分布。
在這篇文章中,我們看到了如何使用Seaborn的displot函數(shù)來分析價格和距離欄的分布。
原文鏈接:https://mp.weixin.qq.com/s/cbWfnP4S-1h1XPhZ1QrNBQ
相關(guān)推薦
- 2022-07-29 C++超詳細講解智能指針_C 語言
- 2022-10-06 zabbix如何添加監(jiān)控主機和自定義監(jiān)控項_zabbix
- 2022-11-13 Redis中HyperLogLog的使用詳情_Redis
- 2022-07-16 python中文文本切詞Kmeans聚類_python
- 2023-04-24 Python?相對路徑報錯:"No?such?file?or?directory"'原因及解決方法_
- 2022-04-01 使用lsof命令恢復已刪除文件(正在使用的文件)
- 2023-01-03 Android?自定義Livedata使用示例解析_Android
- 2023-04-17 深入理解Django的信號機制_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支