成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 數據科學中的 Seaborn 繪圖可視化

開發 后端
本篇文章主要研究 Seaborn 庫——Seaborn 是一個統計繪圖庫,建立在 Matplotlib 基礎之上。它具有非常漂亮的默認繪圖樣式,并且也與 Pandas DataFrames 配合得很好。

[[420332]]

 Python中文社區 (ID:python-china)

本篇文章主要研究 Seaborn 庫——Seaborn 是一個統計繪圖庫,建立在 Matplotlib 基礎之上。它具有非常漂亮的默認繪圖樣式,并且也與 Pandas DataFrames 配合得很好。

Seaborn 可以像安裝任何其他 Python 包一樣使用“pip”進行安裝。

  1. pip install seaborn 

Seaborn 的官方文檔地址如下:

https://seaborn.pydata.org/

另一個重要的地址是官方 API,它引用了各種可用的繪圖類型。

https://seaborn.pydata.org/api.html

我將嘗試將 Seaborn 的功能分解為不同的類別——并從使我們能夠可視化數據集分布的圖開始。

讓我們從導入開始并加載數據 - 我將使用“Financial Sample.xlsx”數據。excel文件可以長按掃碼文末二維碼后進入寬客量化俱樂部下載:

Financial Sample.xlsx 

  1. import pandas as pd  
  2. import seaborn as sns  
  3. #如果使用 Jupyter Notebooks,下面的行允許我們在瀏覽器中顯示圖表  
  4. %matplotlib inline  
  5. #在 Pandas DataFrame 中加載我們的數據  
  6. df = pd.read_excel('Financial Sample.xlsx')   
  7. #打印前 5 行數據以確保正確加載  
  8. df.head() 

讓我們首先看看“distplot”——這讓我們可以看到一組單變量觀測值的分布——單變量只是意味著一個變量。 

  1. #繪制 DataFrame "Profit" 列的分布  
  2. sns.displot(df['Profit']) 

我們現在有一個感興趣的分布圖——但作為一個快速入門,風格看起來有點平淡。讓我們給它一個更常見的“Seaborn”樣式,試圖讓它看起來更好一點…… 

  1. #設置我們希望用于繪圖的樣式  
  2. sns.set_style("darkgrid")  
  3. #繪制 DataFrame "Profit" 列的分布  
  4. sns.displot(df['Profit']) 

我們已經設法用一行代碼繪制 DataFrame 數據的直方圖以及“KDE”線——即核密度估計圖。如果我們在 plot 調用中添加“kde=False”,我們可以刪除 KDE。我們還可以按如下方式更改直方圖中“bins”的數量——在本例中,它們被設置為 50: 

  1. sns.displot(df['Profit'],kde=False,bins=50

現在讓我們看一個“聯合圖”——這允許我們組合兩個 distplots 并處理雙變量數據。讓我們創建一個快速的聯合圖。為此,我們需要通過傳入列名來指定我們想要繪制的 DataFrame 列,以及我們從中提取列的實際 DataFrame。這可以按如下方式完成:假設我想繪制“Profit”列與“Units Sold”列。 

  1. sns.jointplot(x='Profit',y='Units Sold',data=df

我們現在有一個圖,顯示了兩個變量列之間的散點圖,以及它們在任一側的相應分布圖(它甚至在右上角為我們提供了皮爾遜相關系數和 p 分數。)

Jointplot 還允許我們設置一個名為“kind”的附加參數。這允許您影響主圖表的表示方式。目前它是一個“散點”,因為這是默認值,但是如果我們將其更改為“十六進制”,例如,我們將得到以下圖,它將圖表上的點表示為密度六邊形 - 即包含更多數據點的六邊形 顯示為比包含較少點的那些更暗。 

  1. sns.jointplot(x='Profit',y='Units Sold',data=df,kind='hex'

我們可以為“kind”添加的另一個參數是“reg”,它代表回歸。這看起來很像散點圖,但這次將添加線性回歸線。 

  1. sns.jointplot(x='Profit',y='Units Sold',data=df,kind='reg'

我們可以規定的另一種類型是“kde”,它將繪制一個二維 KDE 圖,它基本上只顯示數據點最常出現的位置的密度。 

  1. sns.jointplot(x='Profit',y='Units Sold',data=df,kind='kde'

讓我們從jointplots繼續看“pairplots”。這些使我們能夠查看整個數據幀(對于數值數據)的成對關系,并且還支持分類數據點的“色調”參數。所以 pairplot 本質上是為 DataFrame 中數字列的每個可能組合創建一個聯合圖。我將快速創建一個新的 DataFrame,它刪除“Month Number”和“Year”列,因為這些并不是我們連續數字數據的一部分,例如“利潤”和“COGS”(銷售成本)。我還將刪除其他幾列以縮小我們的 DataFrame,這樣我們的輸出圖就不會過于擁擠。 

  1. #刪除不需要的列  
  2. new_df = df.drop(['Month Number','Year','Manufacturing Price','Sale Price'],axis=1 
  3. sns.pairplot(new_df) 

請注意,我們基本上對每對列都有一個配對圖,并且在對角線上我們有一個分布的直方圖,因為將數據與自身進行聯合圖是沒有意義的。這是快速可視化數據的好方法。我們還可以添加一個“色調”——這是我們指定一個用于分割數據的分類變量的地方。讓我們添加“Segment”列作為我們的“色調”。 

  1. sns.pairplot(new_df,hue='Segment'

現在數據點根據分類數據著色——顏色圖例顯示在圖的右側邊緣。我們還可以通過設置“調色板”參數來更改繪圖使用的調色板。以下是使用“巖漿”配色方案的示例。所有可用的方案都可以在 Matplotlib 站點上找到。 

  1. sns.pairplot(new_df,hue='Segment',palette='magma'

我們將看到的下一個圖是一個“rugplot”——這將幫助我們構建和解釋我們之前創建的“kde”圖是什么——無論是在我們的 distplot 中還是當我們傳遞“kind=kde”作為我們的參數時。 

  1. sns.rugplot(df['Profit']) 

如上所示,對于 rugplot,我們將要繪制的列作為參數傳遞 - rugplot 的作用是為分布中的每個點繪制一個破折號。所以 rugplot 和 distplot 之間的區別在于 distplot 涉及“bins”的概念,并將把每個 bin 中的所有數據點相加,并繪制這個數字,而 rugplot 只是在每個數據點繪制一個標記。

所以現在讓我們將 rugplot 轉換為 KDE 圖。KDE 代表“核密度估計”。下圖是解釋如何將 rugplots 構建到 KDE 圖中的。

如果我們愿意的話,我們可以從一組數據和 rugplot 中構建我們自己的 KDE 圖,看看它是否與使用內置的“kdeplot”直接創建的 KDE 圖相匹配. 

  1. #設置一組 30 個取自正態分布的數據點  
  2. x = np.random.normal(0, 1, size=30 
  3. #設置 KDE 點的帶寬  
  4. bandwidth = 1.06* x.std() * x.size ** (-1/ 5.)  
  5. #設置 y 軸的限制  
  6. support = np.linspace(-4, 4, 200)  
  7. #遍歷數據點并為每個點創建內核,然后繪制內核  
  8. kernels = []  
  9. for x_i in x:  
  10.     kernel = stats.norm(x_i, bandwidth).pdf(support)  
  11.     kernels.append(kernel)  
  12.     plt.plot(support, kernel, color="r" 
  13. sns.rugplot(x, color=".2"linewidth=3

 

  1. #使用復合梯形規則沿給定軸積分并創建 KDE 圖  
  2. from scipy.integrate import trapz  
  3. density = np.sum(kernels, axis=0 
  4. density /= trapz(density, support)  
  5. plt.plot(support, density) 

現在讓我們使用內置的“kdeplot”繪制 KDE 圖。 

  1. sns.kdeplot(x, shade=True

我們可以看到兩個圖是相同的,我們已經正確地創建了我們的 KDE 圖。本文已經涵蓋了大部分分布圖功能。 

 

責任編輯:龐桂玉 來源: Python中文社區
相關推薦

2024-12-24 07:30:00

Seaborn可視化Python

2025-02-10 00:45:00

pairplotheatmaplmplot

2023-08-01 16:01:59

可視化Seaborn

2017-07-12 16:07:49

大數據數據可視化

2014-05-05 10:01:51

數據可視化

2020-10-31 17:13:04

Python可視化Seaborn

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2012-04-10 15:31:06

HTML 5

2022-08-04 13:58:54

SeabornFacetGrid代碼

2021-08-04 20:35:03

可視化SeabornMatplotlib

2024-03-07 09:00:04

Rust數據可視化

2017-10-14 13:54:26

數據可視化數據信息可視化

2022-08-26 09:15:58

Python可視化plotly

2025-06-17 08:05:00

2021-02-04 16:08:01

RoughViz可視化圖表

2017-10-31 09:38:53

大數據數據可視化Python

2020-06-29 15:40:53

PlotlyPython數據可視化

2020-05-26 11:34:46

可視化WordCloud

2022-02-23 09:50:52

PythonEchartspyecharts

2017-06-29 11:26:08

Python數據可視化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费观看男女羞羞视频 | 日韩久久久久久久久久久 | 欧美视频二区 | 免费在线观看成年人视频 | 亚洲精品久久久久中文字幕二区 | 成年网站在线观看 | 中文字幕在线看 | 一级黄色在线 | 亚洲欧美一区二区三区在线 | 欧美成人精品二区三区99精品 | 亚洲区视频 | 欧美精品在线一区 | 成人综合在线视频 | 久久成人国产 | 欧美日韩视频在线播放 | 女人夜夜春 | 91精品久久久久久久久中文字幕 | 高清一区二区三区 | 欧美男人天堂 | 中文字字幕一区二区三区四区五区 | 国产成人精品一区二 | 精品国产乱码久久久久久蜜柚 | 国产精品18hdxxxⅹ在线 | 亚洲成人免费电影 | 三级黄色大片网站 | 国产精品777一区二区 | 日韩一区二区成人 | 国产99久久精品一区二区永久免费 | 国产91亚洲精品一区二区三区 | 亚洲欧美日韩一区 | 欧美不卡视频 | 黄色大片观看 | 精品国产免费一区二区三区五区 | 久草网址 | 色婷婷综合久久久中字幕精品久久 | 欧美精品久久久 | 成人在线观 | 精品不卡| 成人国产毛片 | 国产一区二区三区四区五区加勒比 | 精品一区二区三区视频在线观看 |