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

終于有人將Seaborn可視化講明白了

大數(shù)據(jù) 數(shù)據(jù)可視化
Seaborn是一種開源的數(shù)據(jù)可視化工具,它在Matplotlib的基礎上進行了更高級的API封裝,因此可以進行更復雜的圖形設計和輸出。

[[415432]]

本文轉載自微信公眾號「數(shù)倉寶貝庫」,作者王愷 等。轉載本文請聯(lián)系數(shù)倉寶貝庫公眾號。

Seaborn是一種開源的數(shù)據(jù)可視化工具,它在Matplotlib的基礎上進行了更高級的API封裝,因此可以進行更復雜的圖形設計和輸出。Seaborn是Matplotlib的重要補充,可以自主設置在Matplotlib中被默認的各種參數(shù),而且它能高度兼容NumPy與Pandas數(shù)據(jù)結構以及Scipy與statsmodels等統(tǒng)計模式。Seaborn已集成在Anaconda中,無須再次安裝。

01關系圖

關系圖能夠直觀地展示數(shù)據(jù)變量之間的關系以及這些關系如何依賴于其他變量,Seaborn中常用的繪制數(shù)據(jù)關系圖的函數(shù)是relplot(),其語法格式如下:

  1. seaborn.relplot(*[, x, y, hue, size, style, data, kind, …]) 

參數(shù)說明如下:

  • data是輸入的數(shù)據(jù)集,數(shù)據(jù)類型可以是pandas.DataFrame對象、numpy.ndarray數(shù)組、映射或序列類型等。
  • x和y是參數(shù)data中的鍵或向量,指定關系圖中x軸和y軸的變量。
  • hue也是data中的鍵或向量,根據(jù)hue變量對數(shù)據(jù)進行分組,并在圖中使用不同顏色的元素加以區(qū)分。
  • size也是data中的鍵或向量,根據(jù)size變量控制圖中點的大小或線條的粗細。
  • style也是data中的鍵或向量,根據(jù)style變量對數(shù)據(jù)進行分組,并在圖中使用不同類型的元素加以區(qū)分,比如點線、虛線等。
  • kind指定要繪制的關系圖類型,可選"scatter"(散點圖)和"line"(線形圖),默認值為"scatter"。

relplot函數(shù)提供了幾種可視化數(shù)據(jù)變量之間關系的方法,通過kind參數(shù)選擇要使用的方法,并通過hue、size和style等參數(shù)來顯示數(shù)據(jù)的不同子集。常見的關系圖有兩種,即散點圖和線形圖,因此Seaborn還提供了scatterplot和lineplot函數(shù),它們的語法格式如下:

  1. seaborn.scatterplot(*[, x, y, hue, style, size, …]) 
  2.  
  3. seaborn.lineplot((*[, x, y, hue, style, size, …]))  

scatterplot用于繪制散點圖,相當于seaborn.relplot(kind="scatter");lineplot用于繪制線形圖,相當于seaborn.relplot(kind="line");其他參數(shù)及含義與relplot函數(shù)相同。當其中一個變量是連續(xù)變量時,更適合使用線形圖表示變量之間的關系。

下面通過代碼清單1演示如何用Seaborn繪制關系圖。

  1. 代碼清單1 Seaborn繪制關系圖的示例 
  2.  
  3. 1 import matplotlib.pyplot as plt 
  4.  
  5. 2 import seaborn as sns 
  6.  
  7. 3 tips= sns.load_dataset("tips"
  8.  
  9. 4 print(tips.head()) 
  10.  
  11. 5 sns.relplot(x='total_bill', y='tip', data=tips, hue='smoker', style='sex'size='size'
  12.  
  13. 6 plt.show() 

程序執(zhí)行結束后,輸出的結果如下:

  1.      total_bill   tip     sex   smoker  day   time   size 
  2.  
  3. 0         16.99  1.01  Female       No  Sun  Dinner     2 
  4.  
  5. 1         10.34  1.66    Male       No  Sun  Dinner     3 
  6.  
  7. 2         21.01  3.50    Male       No  Sun  Dinner     3 
  8.  
  9. 3         23.68  3.31    Male       No  Sun  Dinner     2 
  10.  
  11. 4         24.59  3.61  Female       No  Sun  Dinner     4 
  12.  
  13. <seaborn.axisgrid.FacetGrid at 0x16dea2711f0> 

程序繪制的關系圖如圖1所示。

圖1 Seaborn繪制散點關系圖示例

下面對代碼清單1中的代碼做簡要說明。

  • 第2行代碼導入seaborn模塊并將其重命名為sns。
  • 第3行代碼通過sns.load_dataset()函數(shù)連網(wǎng)加載Seaborn開發(fā)者提供的在線樣本數(shù)據(jù)集“tips.csv”,返回值tips是一個DataFrame對象。
  • 第4行代碼打印tips數(shù)據(jù)的前5行,以觀察數(shù)據(jù)結構。
  • 第5行代碼通過sns.relplot()函數(shù)繪制total_bill與tip變量的關系圖,如圖1所示。x坐標為'total_bill'變量,y坐標為'tip'變量;hue='smoker'指定以'smoker'變量對數(shù)據(jù)點進行分類并以不同顏色顯示,不吸煙者對應的數(shù)據(jù)點是藍色的,吸煙者對應的數(shù)據(jù)點為橙色;style='sex'指定以'sex'變量對數(shù)據(jù)點進行分類并以不同樣式顯示,女性對應的數(shù)據(jù)點形狀是圓點,而男性對應的數(shù)據(jù)點形狀則是“×”;size='size'指定以'size'變量對數(shù)據(jù)點進行分類并以不同大小顯示。從圖6-6中可以進一步分析出不同分類中total_bill與tip的關系。

Tips

sns.load_dataset()函數(shù)是連網(wǎng)加載在線數(shù)據(jù)集,還可以在https://github.com/mwaskom/ seaborn-data網(wǎng)站中將數(shù)據(jù)集下載到本地使用。

02分布圖

分布圖可以直觀地顯示一個或多個變量在某個維度上的分布情況。Seaborn提供了幾種常用的繪制分布圖的函數(shù),包括displot()、histplot()、rdeplot()、rugplot()、distplot()和jointplot()等。

1. displot()函數(shù)

displot()函數(shù)提供了幾種可視化數(shù)據(jù)單變量或雙變量分布的方法,語法格式如下:

  1. seaborn.displot([data, x, y, hue, row, col, …]) 

主要參數(shù)說明如下:

  • data是輸入的數(shù)據(jù)集,數(shù)據(jù)類型可以是pandas.DataFrame對象、numpy.ndarray數(shù)組、映射或序列類型等。
  • x和y是參數(shù)data中的鍵或向量,指定分布圖中x軸和y軸的變量。
  • hue是data中的鍵或向量,根據(jù)hue變量對數(shù)據(jù)進行分組,并在圖中使用不同顏色的元素加以區(qū)分。
  • row和col是data中的鍵或向量,根據(jù)row或col變量提取數(shù)據(jù)子集,并將子集分布情況繪制在不同的面板上。
  • kind指定要繪制的分布圖類型,可選"hist"(直方圖)、"kde"(核密度估計)、 "ecdf"(經(jīng)驗累積分布函數(shù)),默認值為"hist"。

displot函數(shù)通過kind參數(shù)選擇要使用的繪制數(shù)據(jù)分布情況的方法,并通過hue、row、col等參數(shù)來處理不同的數(shù)據(jù)子集。Seaborn還提供了三個更具體的繪制分布圖的函數(shù)histplot()、kdeplot()和ecdfplot(),語法格式如下:

  1. seaborn.histplot([data, x, y, hue, weights, stat, …]) 
  2.  
  3. seaborn.kdeplot([x, y, shade, vertical, kernel, bw, …]) 
  4.  
  5. seaborn.ecdfplot([data, x, y, hue, weights, stat, …]) 
  • histplot()函數(shù)主要用于繪制單變量單特征數(shù)據(jù)的直方圖,相當于seaborn.displot (kind= "hist")。
  • kdeplot()函數(shù)使用核密度估計繪制單變量或雙變量分布,相當于seaborn.displot (kind= "kde")。
  • ecdfplot()函數(shù)使用經(jīng)驗累積分布函數(shù)繪制單變量的分布,相當于seaborn.displot (kind= "ecdf")。

2. rugplot()函數(shù)

rugplot()函數(shù)的功能是繪制軸須圖(毛毯分布圖),即通過邊緣軸須線的方式顯示單個觀測點的位置,以補充其他分布圖,其語法格式如下:

  1. seaborn.rugplot([x, height=0.025, axis, ax, data, y, hue, …]) 

主要參數(shù)說明如下:

x和y分別是x軸和y軸的觀測值向量。

  • height設置每個觀測點對應的軸須細線的高度,默認值為0.025。
  • axis指定軸須圖繪制的坐標軸,默認為x軸。
  • ax指定將圖像繪制在已有的axes對象中。
  • hue指定區(qū)分顏色的分類變量。

3. distplot()函數(shù)

distplot()函數(shù)整合了Matplotlib的hist()函數(shù)與Seaborn的kdeplot()函數(shù)的功能,并增加了rugplot()函數(shù)繪制軸須圖的功能,因此它是一個功能非常強大且靈活實用的繪制分布圖函數(shù),其語法格式如下:

  1. seaborn.distplot([a, bins, hist, kde, rug, fit, …]) 

主要參數(shù)說明如下:

  • a是待觀察分析的單個變量,數(shù)據(jù)類型可以是Series對象、一維數(shù)組或列表。
  • bins指定直方圖顯示矩形條的數(shù)量,默認值為None,此時會根據(jù)Freedman-Diaconis準則自動計算合適的條紋個數(shù)。
  • hist指定是否繪制直方圖,布爾類型,默認值為True。
  • kde指定是否繪制高斯核密度估計曲線,布爾類型,默認值為True。
  • rug指定是否在支持的數(shù)據(jù)軸上繪制對應軸須圖,布爾類型,默認值為False。
  • fit傳入scipy.stats中的分布類型,用于在觀察變量上抽取相關統(tǒng)計特征來強行擬合指定的分布,并繪制估計的概率密度函數(shù)(PDF),默認值為None,即不進行擬合。

下面通過代碼清單2演示如何通過Seaborn繪制分布圖。

  1. 代碼清單2 Seaborn繪制分布圖的示例 
  2.  
  3. 1 import seaborn as sns 
  4.  
  5. 2 import matplotlib.pyplot as plt 
  6.  
  7. 3 tips= sns.load_dataset("tips"
  8.  
  9. 4 sns.set_theme(style="whitegrid"
  10.  
  11. 5 sns.displot(data=tips, x="total_bill", col="time", row="sex", binwidth=3, height=3, facet_kws= dict(margin_titles=True)) 
  12.  
  13. 6 plt.subplots() 
  14.  
  15. 7 sns.distplot(a=tips['total_bill'], rug=True, hist=False
  16.  
  17. 8 plt.show() 

程序執(zhí)行結束后,輸出的圖像如圖2和圖3所示。

下面對代碼清單2中的代碼做簡要說明。

  • 第4行代碼通過sns.set_theme()函數(shù)設置主題樣式為whitegrid,即白色背景和網(wǎng)格線。
  • 第5行代碼通過sns.displot()函數(shù)繪制total_bills變量的分布圖,默認繪圖樣式為直方圖。col="time"指定以time變量對數(shù)據(jù)分組并繪制在不同列,如圖2所示,time為Dinner的數(shù)據(jù)分布繪制在第一列,而time為Lunch的數(shù)據(jù)分布繪制在第二列;row="sex"指定以sex變量對數(shù)據(jù)再次分組并繪制不同行,如圖2所示,sex為Female的數(shù)據(jù)分布繪制在第一行,而sex為Male的數(shù)據(jù)分布繪制在第二行。binwidth=3指定直方圖矩形條的寬度為3;height=3指定每個子圖面板的高度為3;facet_kws = dict(margin_titles=True)設置每行對應row變量標簽繪制在最后一列的右側。
  • 第6行代碼通過plt.subplots()函數(shù)新建一個Figure對象,用于繪制第二個圖像。
  • 第7行代碼通過sns.distplot()函數(shù)繪制total_bill變量的高斯核密度估計曲線,rug=True表示要繪制對應的軸須圖,hist=False表示不繪制直方圖,kde默認值為True,即繪制高斯核密度估計曲線,如圖3所示。

圖2 seaborn.displot函數(shù)繪制分布圖示例

圖3 seaborn.distplot函數(shù)繪制高斯核密度估計曲線示例

4. jointplot函數(shù)

seaborn.jointplot()函數(shù)提供了幾種繪制兩個變量的聯(lián)合分布圖的方法,其語法格式如下:

  1. seaborn.jointplot(*[,x,y,data,kind,color,...]) 

主要參數(shù)說明如下:

  • data是輸入的數(shù)據(jù)集,數(shù)據(jù)類型可以是pandas.DataFrame對象、numpy.ndarray數(shù)組、映射或序列類型等。
  • x和y是參數(shù)data中的鍵或向量,指定分布圖中x軸和y軸的變量。聯(lián)合分布圖是雙向繪制的,即兩個變量分別以對方作為自變量繪制分布圖。
  • kind指定繪制主分布圖的類型,可選擇值為"scatter"(散點圖)、"kde"(核密度估計曲線)、"hist"(直方圖)、"hex"(六邊形圖)、"reg"(回歸圖)或"resid"(線性回歸殘差圖),默認值為"scatter"。
  • color指定圖像中元素的顏色。

下面通過代碼清單3演示如何通過jointplot函數(shù)繪制分布圖。

  1. 代碼清單3 jointplot函數(shù)繪制分布圖的示例 
  2.  
  3. 1import seaborn as sns 
  4.  
  5. 2import matplotlib.pyplot as plt 
  6.  
  7. 3tips = sns.load_dataset("tips"
  8.  
  9. 4sns.set(style="white") #設置風格樣式 
  10.  
  11. 5sns.jointplot(x="total_bill", y="tip", data=tips) 
  12.  
  13. 6plt.show() 

程序執(zhí)行結束后,輸出的圖像如圖4所示。

圖4 jointplot函數(shù)繪制聯(lián)合分布圖示例

下面對代碼清單3中的代碼做簡要說明。

  • 第4行代碼通過sns.set()函數(shù)設置主題樣式為white,即白色背景無網(wǎng)格。
  • 第5行代碼通過sns.jointplot()函數(shù)繪制total_bill和tip變量的聯(lián)合分布圖,如圖5所示。中間的主分布圖默認為散點圖,顯示total_bill和tip變量之間的關系。主圖上方對應繪制x軸變量total_bill的直方圖,主圖右側則對應繪制y軸變量tip的直方圖。

03分類圖

分類圖展示數(shù)據(jù)根據(jù)特定變量進行分類后的統(tǒng)計情況。常用的分類圖包括分類散點圖、箱形圖、條形圖等。Seaborn的catplot()函數(shù)提供了幾種不同的分類可視化方法,以便顯示數(shù)值變量與一個或多個分類變量之間的關系,常用語法格式如下:

  1. seaborn.catplot(*[,x,y,hue,data,row,col,kind,...]) 

參數(shù)說明如下:

  • data是輸入的數(shù)據(jù)集,數(shù)據(jù)類型只能是長格式的pandas.DataFrame對象,即每一列對應一個變量,每一行對應一個觀察值。
  • x和y是data數(shù)據(jù)集中的變量名,指定分類圖中x軸和y軸的變量。
  • hue也是data數(shù)據(jù)集中的變量名,根據(jù)hue變量對數(shù)據(jù)進行分組,并在圖中使用不同顏色的元素加以區(qū)分。
  • row和col也是data數(shù)據(jù)集中的變量名,作為分類變量提取數(shù)據(jù)子集,并將子集分布情況繪制在不同的面板上。
  • kind指定要繪制的分類圖類型,可選類型有"strip"(帶狀圖)、"swarm"(分簇散點圖)、"box"(箱形圖)、"violin"(小提琴圖)、"boxen"(增強箱形圖)、"point"(點估計)、"bar"(條形圖)或"count"(計數(shù)條形圖),默認值為"strip"。

catplot()函數(shù)通過kind參數(shù)選擇要使用的繪制數(shù)據(jù)分類的方法,并通過hue、row、col等參數(shù)來處理不同的數(shù)據(jù)子集。Seaborn還提供了三類更具體的繪制分類圖的函數(shù),包括分類散點圖、分類分布圖和分類預測圖。

1.分類散點圖函數(shù)

分類散點圖函數(shù)包括stripplot()和swarmplot(),常用的語法格式如下:

  1. seaborn.stripplot(*[, x, y, hue, data, order, …]) 
  2.  
  3. seaborn.swarmplot(*[, x, y, hue, data, order, …]) 

seaborn.stripplot(*[,seaborn.swarmplot(*[,stripplot()相當于seaborn.catplot(kind= "strip"),可以顯示測量變量在每個類別的分布情況,繪制的散點呈帶狀,數(shù)據(jù)較多時會有重疊的部分。

swarmplot()相當于seaborn.catplot(kind= "swarm"),它與stripplot()類似,但繪制的數(shù)據(jù)點不會重疊。

2.分類分布圖函數(shù)

分類分布圖函數(shù)包括boxplot()、violinplot()和boxenplot(),常用的語法格式如下:

  1. seaborn.boxplot(*[, x, y, hue, data, order, …]) 
  2.  
  3. seaborn.violinplot(*[, x, y, hue, data, order, …]) 
  4.  
  5. seaborn.boxenplot(*[, x, y, hue, data, order, …]) 
  • boxplot()相當于seaborn.catplot(kind= "box"),用于繪制箱形圖以顯示與類別相關的分布情況,可以顯示四分位數(shù)、中位數(shù)和極值。
  • violinplot()相當于seaborn.catplot(kind= " violin "),結合了箱形圖和核密度估計圖。
  • boxenplot()相當于seaborn.catplot(kind= "boxen"),用于為更大的數(shù)據(jù)集繪制增強箱形圖。

3.分類預測圖函數(shù)

分類預測圖函數(shù)包括pointplot()、barplot()和countplot(),常用的語法格式如下:

  1. seaborn.pointplot(*[, x, y, hue, data, order, …]) 
  2.  
  3. seaborn.barplot(*[, x, y, hue, data, order, …]) 
  4.  
  5. seaborn.countplot(*[, x, y, hue, data, order, …]) 
  • pointplot()相當于seaborn.catplot(kind= "point"),使用散點圖符號顯示點估計和置信區(qū)間。
  • barplot()相當于seaborn.catplot(kind= "bar"),使用條形圖顯示點估計和置信區(qū)間。
  • countplot()相當于seaborn.catplot(kind= "count"),使用條形圖顯示每個分類中的觀察值計數(shù)。

下面通過代碼清單4演示如何通過Seaborn繪制分類圖。

  1. 代碼清單4 Seaborn繪制分類圖的示例 
  2.  
  3. 1 import seaborn as sns 
  4.  
  5. 2 import pandas as pd 
  6.  
  7. 3 import matplotlib.pyplot as plt 
  8.  
  9. 4 tips = sns.load_dataset("tips"
  10.  
  11. 5 sns.set_theme(style="whitegrid"
  12.  
  13. 6 f = sns.catplot(data=tips, kind="bar",x="day", y="total_bill", hue="smoker"
  14.  
  15. 7 f.despine(left=True
  16.  
  17. 8 f.set_axis_labels("day""total_bill"
  18.  
  19. 9 f.legend.set_title("smoker"
  20.  
  21. 10 plt.subplots() 
  22.  
  23. 11 sns.boxplot(x="day", y="total_bill", data=tips) 
  24.  
  25. 12 plt.show() 

程序執(zhí)行結束后,輸出的圖像如圖5和圖6所示。

下面對代碼清單4中的代碼做簡要說明。

  • 第6行代碼通過sns.catplot()函數(shù)針對數(shù)據(jù)集tips繪制分布圖,kind="bar"指定繪制條形圖;x="day"指定x坐標為day變量,即根據(jù)day變量對數(shù)據(jù)集進行分類;y="total_bill"指定y坐標為total_bill變量,即顯示total_bill變量的統(tǒng)計情況;hue="smoker"指定以smoker變量對數(shù)據(jù)點進行分類并以不同顏色顯示,如圖5所示,smoker值為No的對應數(shù)據(jù)條是藍色的,smoker值為Yes的對應數(shù)據(jù)條是棕色的。返回值f是FacetGrid對象。

圖5 seaborn.catplot()函數(shù)繪制分類圖示例

圖6 seaborn.boxplot()函數(shù)繪制箱形圖示例

  • 第7行代碼通過f.despine(left=True)設置移除f左側的y軸軸線。
  • 第8~9行代碼分別設置x軸標簽為day,y軸標簽為total_bill,圖例標題為smoker。
  • 第10行代碼通過plt.subplots()函數(shù)新建一個Figure對象。
  • 第11行代碼通過sns.boxplot()函數(shù)繪制箱形圖,同樣指定x坐標為day變量,指定y坐標為total_bill變量,結果如圖6所示。

04回歸圖

回歸圖是使用統(tǒng)計模型估計兩個變量間的關系。Seaborn提供了常用的繪制回歸圖的函數(shù)regplot()和lmplot()。regplot()函數(shù)的功能是繪制數(shù)據(jù)和線性回歸模型擬合的曲線,常用的語法格式如下:

  1. seaborn.regplot(*[, x, y, data, x_estimator, …]) 

主要參數(shù)說明如下:

data是輸入的數(shù)據(jù)集,數(shù)據(jù)類型是DataFrame對象,即每一列對應一個變量,每一行對應一個觀察值。

x和y是輸入變量,數(shù)據(jù)類型可以是字符串、Series對象或者向量數(shù)組等。如果是字符串,則與data中的列名相對應。如果是Pandas對象,則坐標軸被標記為Series名稱。

lmplot()函數(shù)結合了regplot()和FacetGrid的功能,為繪制數(shù)據(jù)集的條件子集的回歸模型提供接口,語法格式如下:

  1. seaborn.lmplot(*[, x, y, data, hue, col, row, …]) 

主要參數(shù)說明如下:

  • data是輸入的數(shù)據(jù)集,數(shù)據(jù)類型是DataFrame對象,即每一列對應一個變量,每一行對應一個觀察值。
  • x和y是輸入變量,數(shù)據(jù)類型是字符串,與data中的列名相對應。
  • hue、col和row是劃分數(shù)據(jù)子集的變量,這些子集將繪制在網(wǎng)格中的不同面板上。

regplot()和lmplot()函數(shù)密切相關,兩者主要的區(qū)別是:regplot接受各種類型的x和y參數(shù),包括numpy arrays 、pandas.series 或者pandas.Dataframe對象;而lmplot()的x和y參數(shù)只接受字符串類型。

下面通過代碼清單5演示如何通過Seaborn繪制回歸圖。

  1. 代碼清單5 Seaborn繪制回歸圖的示例 
  2.  
  3. 1 import seaborn as sns 
  4.  
  5. 2 import matplotlib.pyplot as plt 
  6.  
  7. 3 tips = sns.load_dataset("tips"
  8.  
  9. 4 sns.regplot(x="total_bill", y="tip", data=tips) 
  10.  
  11. 5 sns.lmplot(x="total_bill", y="tip", hue="smoker",col='sex', data=tips) 
  12.  
  13. 6 plt.show() 

程序執(zhí)行結束后,輸出的圖像如圖7和圖8所示。

圖7 seaborn.regplot()函數(shù)繪制回歸圖示例

圖8 seaborn.lmplot()函數(shù)繪制回歸圖示例

下面對代碼清單5中的代碼做簡要說明。

  • 第4行代碼通過sns.regplot()函數(shù)繪制回歸圖,指定x坐標為total_bill變量,指定y坐標為tip變量,其他設置采用默認值,結果如圖6-12所示,繪制出了total_bill和tip變量之間的線性擬合曲線,同時實際數(shù)據(jù)以散點的形式顯示。
  • 第5行代碼通過sns.lmplot()函數(shù)在一個Facegrid對象中繪制total_bill和tip的回歸曲線;hue="smoker"指定以smoker變量對數(shù)據(jù)點進行分類并以不同的顏色顯示,如圖8所示,smoker值為No的數(shù)據(jù)點和擬合直線是藍色的,smoker值為Yes的數(shù)據(jù)點和擬合直線是橙色的;col='sex'指定以sex變量對數(shù)據(jù)再次分組并繪制在不同列,如圖8所示,sex為Female的數(shù)據(jù)分布繪制在第一列,sex為Male的數(shù)據(jù)分布繪制在第二列。

05熱力圖

熱力圖是將不同的數(shù)據(jù)值用不同的標志加以標注的一種可視化分析手段,標注的手段一般包括顏色的深淺、點的疏密以及呈現(xiàn)比重的形式。在數(shù)據(jù)分析中,如果離散數(shù)據(jù)波動變化比較大,那么可以使用熱力圖來觀察波動變化。

Seaborn提供的heatmap()函數(shù)可以為二維數(shù)據(jù)繪制由顏色編碼矩陣組成的熱力圖,語法格式如下:

  1. seaborn.heatmap(data, *[, vmin, vmax, cmap, center, …]) 

主要參數(shù)說明如下:

  • data是輸入的二維矩形數(shù)據(jù)集,數(shù)據(jù)類型可以是DataFrame對象或二維ndarray數(shù)組等。
  • vmin和vmax指定colormap的值,數(shù)據(jù)類型為float,默認值根據(jù)數(shù)據(jù)或其他關鍵參數(shù)來決定。
  • cmap指定數(shù)據(jù)值到顏色空間的映射,數(shù)據(jù)類型可以是Matplotlib colormap名稱或對象、顏色列表等。
  • center指定在繪制發(fā)散數(shù)據(jù)時顏色映射的居中值,數(shù)據(jù)類型為float。

下面通過代碼清單6演示如何通過Seaborn繪制熱力圖。

  1. 代碼清單6 Seaborn繪制熱力圖的示例 
  2.  
  3. 1 import numpy as np 
  4.  
  5. 2 import seaborn as sns 
  6.  
  7. 3 import matplotlib.pyplot as plt 
  8.  
  9. 4 np.random.seed(0) 
  10.  
  11. 5 uniform_data = np.random.rand(10, 12) 
  12.  
  13. 6 sns.heatmap(uniform_data) 
  14.  
  15. 7 plt.show() 

程序執(zhí)行結束后,輸出的圖像如圖9所示。

圖9 seaborn.heatmap()函數(shù)繪制熱力圖示例

下面對代碼清單6中的代碼做簡要說明。

  • 第4~5行代碼通過numpy.random.rand函數(shù)隨機生成了10×12的二維數(shù)組uniform_data。
  • 第6行代碼通過sns.heatmap()函數(shù)以熱力圖的形式展示uniform_data的數(shù)值變化。

 

本文摘編于《Python數(shù)據(jù)分析與應用》,經(jīng)出版方授權發(fā)布。

 

責任編輯:武曉燕 來源: 數(shù)倉寶貝庫
相關推薦

2021-08-31 19:14:38

技術埋點運營

2021-09-03 18:38:13

數(shù)據(jù)湖數(shù)據(jù)倉庫

2021-09-26 15:58:05

MySQL SQL 語句數(shù)據(jù)庫

2022-11-01 18:21:14

數(shù)據(jù)埋點SDK

2021-10-09 00:02:04

DevOps敏捷開發(fā)

2021-06-13 12:03:46

SaaS軟件即服務

2022-03-27 20:32:28

Knative容器事件模型

2021-09-14 18:27:08

Spark

2021-10-17 20:38:30

微服務內存組件

2021-03-25 11:24:25

爬蟲技術開發(fā)

2020-11-03 07:04:39

云計算公有云私有云

2022-04-27 18:25:02

數(shù)據(jù)采集維度

2021-12-03 18:25:56

數(shù)據(jù)指標本質

2021-10-12 18:31:40

流量運營前端

2020-11-30 08:34:44

大數(shù)據(jù)數(shù)據(jù)分析技術

2022-04-22 11:26:55

數(shù)據(jù)管理架構

2021-03-03 21:31:24

量化投資利潤

2022-01-05 18:27:44

數(shù)據(jù)挖掘工具

2021-06-29 11:21:41

數(shù)據(jù)安全網(wǎng)絡安全黑客

2021-02-14 00:21:37

區(qū)塊鏈數(shù)字貨幣金融
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久成人精品免费播放动漫 | 国产成人精品一区二 | 盗摄精品av一区二区三区 | 97视频在线免费 | 久久新视频| 精品蜜桃一区二区三区 | 美女露尿口视频 | 北条麻妃视频在线观看 | 欧美理论片在线观看 | 成人在线激情 | 亚洲夜夜爽| 激情久久av一区av二区av三区 | 美女天天操 | 秋霞电影一区二区三区 | 91精品在线播放 | 国产激情一区二区三区 | 一区二区免费高清视频 | 国产专区在线 | 全部免费毛片在线播放网站 | 一区二区三区在线观看视频 | 欧美日在线 | 免费在线观看成人av | 成人区精品 | 久久精品视频91 | 一级毛片免费 | 成人黄色三级毛片 | 久久一久久| 久久人人爽人人爽 | 国产精品自拍视频 | 99在线资源 | 亚洲第一成人影院 | 91中文在线观看 | 99免费看 | 成人免费视频7777777 | 麻豆精品国产91久久久久久 | 欧美一区二区三区在线观看视频 | 热99精品视频 | 欧美另类视频 | 日韩成人在线网站 | 一区欧美 | 久久免费视频观看 |