数据分析
seaborn 模塊
簡(jiǎn)述
對(duì)matplotlib 模塊進(jìn)行了二次封裝, 底層依舊使用還是matplotlib 的, 但是在此基礎(chǔ)上增加了很多的易用性模板, 更加方便使用
引用使用
import seaborn as sns
對(duì)比 matplotlib 默認(rèn)風(fēng)格
默認(rèn)風(fēng)格的方法 - set
主題風(fēng)格
設(shè)置風(fēng)格 -set_style
可選參數(shù)
darkgrid
whitegrid
dark
white
ticks
white 風(fēng)格
完全的清亮背景色, 無刻線, 無刻度尺
drak 風(fēng)格
背景色深灰, 無刻線, 無刻度尺
whitegrid 風(fēng)格
帶有 y軸 數(shù)據(jù)刻線, 背景清亮
ticks 風(fēng)格
帶有刻度尺
darkgrid 風(fēng)格
帶有x, y 刻線, 且背景深灰, 無刻度尺
批量執(zhí)行風(fēng)格 - axes_style
在縮進(jìn)內(nèi)的都可以套用此風(fēng)格, 在畫子圖的時(shí)候使用此方法設(shè)定不同的風(fēng)格可以更直觀的看出差異,方便觀察
自定義風(fēng)格修改
默認(rèn)的主題風(fēng)格是比較固定的, 可以在此基礎(chǔ)上進(jìn)行一定的修改滿足自定制
修改邊界線 - despine
去掉上面和右邊的線,
可設(shè)置參數(shù)offset設(shè)置 數(shù)值與坐標(biāo)軸線的距離
可設(shè)置參數(shù)left 去除左右的邊界線, 其他方位可選是, top ,bottom,right
修改布局 -set_context
可選風(fēng)格
paper
talk
poster
notebook
大小從小到大, 里面的格子可以看得出來哦
可選參數(shù) font_scale 設(shè)定字體大小
可選參數(shù)rc 設(shè)定線的粗細(xì)
調(diào)色板
調(diào)色板 - 離散型
顏色很重要 - 用于展示數(shù)據(jù)更直觀的體現(xiàn), 顏色區(qū)分展示是很舒適的
color_palette()能傳入任何Matplotlib所支持的顏色
color_palette() 不寫參數(shù)則默認(rèn)顏色
set_palette() 設(shè)置所有圖的顏色
默認(rèn)色板 - color_palette
6個(gè)默認(rèn)的顏色循環(huán)主題: deep, muted, pastel, bright, dark,colorblind
畫板 - hls 空間
當(dāng)你有六個(gè)以上的分類要區(qū)分時(shí),最簡(jiǎn)單的方法就是在一個(gè)圓形的顏色空間中畫出均勻間隔的顏色(這樣的色調(diào)會(huì)保持亮度和飽和度不變)。
這是大多數(shù)的當(dāng)他們需要使用比當(dāng)前默認(rèn)顏色循環(huán)中設(shè)置的顏色更多時(shí)的默認(rèn)方案。
最常用的方法是使用hls 的顏色空間,這是RGB值的一個(gè)簡(jiǎn)單轉(zhuǎn)換。
使用方法具體就是輸入一個(gè)數(shù)字, 則輸出多少顏色,hls 畫板適合快速的生成多色畫板
畫板 - Paired 空間
Paired 適用于成對(duì)出現(xiàn)的色板排列. 用于某些數(shù)據(jù)對(duì)更加直觀方便
飽和度, 亮度 - hls_palette
hls_palette 函數(shù)來控制顏色的亮度和飽和
l - 亮度 lightness
s - 飽和 saturation
指定顏色 - xkcd
指定特定顏色的時(shí)候使用xkcd_rgb 函數(shù)可實(shí)現(xiàn) , 傳入?yún)?shù)為鍵值形式取值, 可對(duì)顏色類型和深淺進(jìn)行特化
xkcd包含了一套眾包努力的針對(duì)隨機(jī)RGB色的命名。產(chǎn)生了954個(gè)可以隨時(shí)通過xdcd_rgb字典中調(diào)用的命名顏色。
調(diào)色板 - 連續(xù)型
連續(xù)型色板用于相同色系的深淺度進(jìn)行漸變處理
默認(rèn)是由淺到深的漸變, 翻轉(zhuǎn)則在選取顏色后加_r 進(jìn)行翻轉(zhuǎn)
畫板 -cubehelix_palette
色調(diào)線性變換 ,可以使用color_palette 傳參"cubehelix" 或者直接使用cubehelix_palette 函數(shù)
推薦后者, 后者可以傳遞更多的參數(shù)以及自動(dòng)提示更方便
顏色區(qū)間 - start,rot
cubehelix_palette 函數(shù)的可選參數(shù)start,rot 控制顏色區(qū)間
指定深淺 -light_palette,dark_palette
簡(jiǎn)單示例
變量分析
單變量分析
數(shù)據(jù)范式,基礎(chǔ)準(zhǔn)備
直方圖 - distplot
也可以指定bins 的大小, 更細(xì)化的展示數(shù)據(jù)
加入fit 展示統(tǒng)計(jì)指標(biāo)
分布散點(diǎn)圖 -stripplot
stripplot 函數(shù)創(chuàng)建散點(diǎn)圖展示單變量數(shù)據(jù)量
但是數(shù)據(jù)過大出現(xiàn)的重疊會(huì)導(dǎo)致堆積造成連線成面等現(xiàn)象無法正確觀察
重疊處理 - 偏移 jitter
設(shè)置jitter 可以使數(shù)據(jù)偏移左右位置散開展示, 但是看起來還是不太直觀
分簇散點(diǎn)圖- swarmplot
swarmplot 創(chuàng)建的散點(diǎn)圖則徹底將數(shù)據(jù)散開呈現(xiàn)圣誕樹結(jié)構(gòu), 更加清晰的展示
盒型圖 -boxplot
盒型圖概念
IQR即統(tǒng)計(jì)學(xué)概念四分位距,第1/4分位 與 第3/4之間的距離
N = 1.5IQR 如果一個(gè)值>Q3+N或 < Q1-N,則為離群點(diǎn)
小提琴圖 -violinplot
多變量體現(xiàn)的時(shí)候小提琴圖默認(rèn)是區(qū)分的, 如上圖的吃晚餐和吃午餐的在周一到周五之間的關(guān)系上就是分為兩色分別展示
如果想更直觀的展示一天中 午餐顧客數(shù)量和晚餐顧客數(shù)量的對(duì)比. 則可以加入split參數(shù), 如下圖的 每天吃飯男女的關(guān)系
組合圖
圖之間是可以組合的. 比如如下的小提琴圖和分簇散點(diǎn)圖的組合, 小提琴設(shè)置inner=None 表示去除中間的顯示
alpha 則設(shè)置透明度
條形圖 -barplot
下圖展示的是泰坦尼克號(hào)中不同性別. 不同船艙等級(jí)情況下的獲救幾率
多變量分析
數(shù)據(jù)范式準(zhǔn)備
根據(jù)均值和協(xié)方差生成數(shù)據(jù)
綜合散點(diǎn)圖 - jointplot
觀測(cè)兩個(gè)變量之間的分布關(guān)系最好用散點(diǎn)圖 ,利用jointplot 建立散點(diǎn)圖且自動(dòng)創(chuàng)建配合直方圖
重疊處理 - 蜂巢圖
散點(diǎn)圖在大量數(shù)據(jù)的時(shí)候點(diǎn)會(huì)堆疊導(dǎo)致無法觀察, 因此可使用 hex 圖這樣對(duì)重復(fù)數(shù)據(jù)點(diǎn)會(huì)有深淺變化
在jointplot 中指定可選參數(shù)kind 為 hex 即可
讀取數(shù)據(jù)集 -load_dataset
讀取數(shù)據(jù)集load_dataset 函數(shù),示例使用內(nèi)置的鳶尾花數(shù)據(jù)集, (有4個(gè)特征的數(shù)據(jù)集)
矩陣散點(diǎn)圖 - pairplot
在使用pairplot 函數(shù)讀取即可所有特質(zhì)之間的 兩兩對(duì)應(yīng)關(guān)系
因此不再需要手動(dòng)執(zhí)行循環(huán)建立子圖較為繁瑣的方式去處理
由下圖可見, 4個(gè)特征的兩兩對(duì)應(yīng)關(guān)系, 對(duì)角線表示是相同特征的對(duì)比, 因此單特征展現(xiàn)為直方圖, 其他為散點(diǎn)圖
回歸分析
數(shù)據(jù)范式準(zhǔn)備
內(nèi)置的 tips 數(shù)據(jù)樣本, 顧客的一系列特征與愿意出多少小費(fèi)的關(guān)聯(lián)
回歸圖 - regplot
regplot() 和lmplot() 都可以繪制回歸關(guān)系,推薦regplot()
傳入?yún)?shù)必選x,y,data,分別表示 x 軸, y 軸, 以及樣本數(shù)據(jù)
繪制出的圖形可以大體戰(zhàn)術(shù)出 全部小費(fèi)金額和小費(fèi)之間的線性關(guān)系以及數(shù)據(jù)分布的散點(diǎn)展示
加入數(shù)據(jù)抖動(dòng) -x_jitter
一些不太適合做線性回歸的數(shù)據(jù)可以加入抖動(dòng)進(jìn)行更好的適配
擬合以及其他操作參考 這里
回歸圖 -mplot
mplot 繪制的圖和regplot 大體差不多, 但是可供支持的參數(shù)更多, 可以實(shí)現(xiàn)更多復(fù)雜的指標(biāo)操作
FacetGrid 使用
基本工作流程是FacetGrid使用數(shù)據(jù)集和用于構(gòu)造網(wǎng)格的變量初始化對(duì)象。然后,可以通過調(diào)用FacetGrid.map()或?qū)⒁粋€(gè)或多個(gè)繪圖函數(shù)應(yīng)用于每個(gè)子集 FacetGrid.map_dataframe() 最后,可以使用其他方法調(diào)整繪圖,以執(zhí)行更改軸標(biāo)簽,使用不同刻度或添加圖例等操作
內(nèi)部屬性
classseaborn.FacetGrid(
data,row=None,col=None,hue=None,col_wrap=None,sharex=True,
sharey=True,height=3,aspect=1,palette=None,row_order=None,
col_order=None,hue_order=None,hue_kws=None,dropna=True,
legend_out=True,despine=True,margin_titles=False,
xlim=None,ylim=None,subplot_kws=None,gridspec_kws=None,size=None)
data: DataFrame
處理后的(“長(zhǎng)格式”)dataframe數(shù)據(jù),其中每一列都是一個(gè)變量(特征),每一行都是一個(gè)樣本
row, col, hue: strings
定義數(shù)據(jù)子集的變量,這些變量將在網(wǎng)格的不同方面繪制。請(qǐng)參閱下面 *_order 參數(shù)以控制該變量的級(jí)別順序
例如:col="sex", hue="smoker",即列表示性別,顏色語(yǔ)意表示是否吸煙,下面示例會(huì)給出詳細(xì)說明
col_wrap: int, optional
這個(gè)意思是圖網(wǎng)格列維度限制,比如 col_wrap =3,那么在這個(gè)畫布里最多只能畫3列。行不限制,這樣就限制了列的個(gè)數(shù)。
share{x,y}: bool, ‘col’, or ‘row’ optional
是否共享x軸或者y軸,就是說如果為真,就共享同一個(gè)軸,否則就不共享,默認(rèn)是都共享,即都為 True
g = sns.FacetGrid(tips, col="sex", hue="smoker",sharex=True, sharey=True)# 都共享 g.map(plt.scatter, "total_bill", "tip", alpha=0.8) g.add_legend();g = sns.FacetGrid(tips, col="sex", hue="smoker",sharex=True, sharey=False)# 關(guān)閉共享y軸, 關(guān)閉后會(huì)每個(gè)表獨(dú)立畫一個(gè) y 軸 g.map(plt.scatter, "total_bill", "tip", alpha=0.8) g.add_legend();
height: scalar, optional
每個(gè)圖片的高度設(shè)定,默認(rèn)為3
aspect: scalar, optional
文檔說是縱橫比,是說每個(gè)小圖的橫軸長(zhǎng)度和縱軸的比
g = sns.FacetGrid(tips, col="sex", hue="smoker",sharex=True, sharey=True, aspect=1) # 默認(rèn)為1,即等高等寬 g.map(plt.scatter, "total_bill", "tip", alpha=0.8) g.add_legend();g = sns.FacetGrid(tips, col="sex", hue="smoker",sharex=True, sharey=True, aspect=0.5) # 改為0.5 g.map(plt.scatter, "total_bill", "tip", alpha=0.8) g.add_legend();
palette: palette name, list, or dict, optional
這個(gè)簡(jiǎn)單,一般在使用hue時(shí)來改變顏色的,有這幾種系統(tǒng)給的可選deep, muted, bright, pastel, dark, colorblind
舉個(gè)例子還是上圖的啊,不給代碼了,直接上圖了,此時(shí)我給的是palette='colorblind'
{row,col,hue}_order: lists, optional
對(duì)所給命令的級(jí)別進(jìn)行排序。默認(rèn)情況下,這將是數(shù)據(jù)中顯示的級(jí)別,如果變量是 pandas 分類,則是類別順序。
g = sns.FacetGrid(tips, col="sex", hue="smoker",sharex=True, sharey=True,col_order=['老大', '老二', '老三', '老四']) g.map(plt.scatter, "total_bill", "tip", alpha=0.8) g.add_legend();調(diào)換一下位置看看:
就不全上傳代碼了,關(guān)鍵代碼給出:
col_order=['老大', '老二', '老三', '老四']到這里大家就可以看出來了,這個(gè)命令是可以讓我們?cè)O(shè)置畫圖的順序的
hue_kws: dictionary of param -> list of values mapping
其他關(guān)鍵字參數(shù)插入到繪圖調(diào)用中,讓其他繪圖屬性在色相變量的級(jí)別上有所不同(例如散點(diǎn)圖中的標(biāo)記)
>>> pal = dict(Lunch="seagreen", Dinner="gray") # 先定義一個(gè)字典,把顏色確定 >>> g = sns.FacetGrid(tips, col="sex", hue="time", palette=pal,# 然后傳遞給palette ... hue_order=["Dinner", "Lunch"])#hue_order這個(gè)官方解釋的好,優(yōu)先Dinner >>> g = (g.map(plt.scatter, "total_bill", "tip", **kws) ... .add_legend())>>> g = sns.FacetGrid(tips, col="sex", hue="time", palette=pal,hue_order=["Dinner", "Lunch"], hue_kws=dict(marker=["^", "v"])) # 給顏色語(yǔ)意使用不同的標(biāo)簽,這樣可以進(jìn)行一部分區(qū)別 >>> g = (g.map(plt.scatter, "total_bill", "tip", **kws).add_legend())總結(jié)來說,hue_kwss就是增加能快速辨識(shí)的方法,在變量很多時(shí)很有用,我把hue_order=["Dinner", "Lunch"]換一下位置看看,確實(shí)是有順序的
legend_out: bool, optional
默認(rèn)為True,legend是圖例的意思,如果True,圖形尺寸將被擴(kuò)展,并且圖例將被繪制在中心右側(cè)的圖形之外,上面的圖都是這樣的,為假時(shí),圖例單獨(dú)放出來,下面是為假的情況,看下下面的圖例和上面的區(qū)別
despine: boolean, optional
從圖中移除頂部和右側(cè)脊柱,就是邊緣框架
margin_titles: bool, optional
如果是真的,那么行變量的標(biāo)題就會(huì)被繪制到最后一列的右邊。這個(gè)選項(xiàng)是實(shí)驗(yàn)性的,在所有情況下都可能不起作用。
直接看圖吧:
g = sns.FacetGrid(tips, row="smoker", col="time", margin_titles=False) # margin_titles為假的時(shí)候 g.map(sns.regplot, "size", "total_bill", color="red", fit_reg=False, x_jitter=.2);再給出margin_titles=True的圖,代碼和上面一樣,可以看出來了,行變量的標(biāo)題就會(huì)被繪制到最后一列的右邊
{x, y}lim: tuples, optional
每個(gè)方面的每個(gè)軸的限制(只有當(dāng)共享x時(shí)才相關(guān),y是正確的
subplot_kws: dict, optional
傳遞給matplotlib的subplot(s) 方法的關(guān)鍵字參數(shù)字典Dictionary of keyword arguments passed to matplotlib subplot(s) methods.這個(gè)需要看看subplot函數(shù)的參數(shù),后面有時(shí)間補(bǔ)上
gridspec_kws: dict, optional
傳遞給matplotlib的gridspec模塊的關(guān)鍵字參數(shù)的字典(Viaplt.subplots)。matplotlib >= 1.4,如果colwrap不是None,則會(huì)被忽略。也許查看相關(guān)函數(shù),改天再補(bǔ)上
這個(gè)兩個(gè)參數(shù)是為了和matplotlib傳參是使用的
內(nèi)部方法
__init__(data [,row,col,hue,col_wrap,...]) |
初始化matplotlib圖和FacetGrid對(duì)象。 |
add_legend([legend_data,title,label_order]) |
繪制一個(gè)圖例,可能將其放在軸外并調(diào)整圖形大小。 |
despine(** kwargs) |
從小平面上移除軸刺。 |
facet_axis(row_i,col_j) |
使這些索引識(shí)別的軸處于活動(dòng)狀態(tài)并返回。 |
facet_data() |
生成器用于每個(gè)方面的名稱索引和數(shù)據(jù)子集。 |
map(func,* args,** kwargs) |
將繪圖功能應(yīng)用于每個(gè)方面的數(shù)據(jù)子集。 |
map_dataframe(func,* args,** kwargs) |
喜歡.map但是將args作為字符串傳遞并在kwargs中插入數(shù)據(jù)。 |
savefig(* args,** kwargs) |
保存圖。 |
set(** kwargs) |
在每個(gè)子圖集Axes上設(shè)置屬性。 |
set_axis_labels([x_var,y_var]) |
在網(wǎng)格的左列和底行設(shè)置軸標(biāo)簽。 |
set_titles([template,row_template,...]) |
在每個(gè)構(gòu)面上方或網(wǎng)格邊距上繪制標(biāo)題。 |
set_xlabels([label]) |
在網(wǎng)格的底行標(biāo)記x軸。 |
set_xticklabels([labels,step]) |
在網(wǎng)格的底行設(shè)置x軸刻度標(biāo)簽。 |
set_ylabels([label]) |
在網(wǎng)格的左列標(biāo)記y軸。 |
set_yticklabels([labels]) |
在網(wǎng)格的左列上設(shè)置y軸刻度標(biāo)簽。 |
示例
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
tips = sns.load_dataset("tips")
tips.head()
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4
tips['day'].unique()
# 從數(shù)據(jù)中可以看出sex、smoker、time均為兩個(gè)狀態(tài)值
[Sun, Sat, Thur, Fri]
Categories (4, object): [Sun, Sat, Thur, Fri]
g = sns.FacetGrid(tips, col="time")
# 像這樣初始化網(wǎng)格會(huì)設(shè)置matplotlib圖形和軸,但不會(huì)在它們上繪制任何內(nèi)容。
# 在該網(wǎng)格上可視化數(shù)據(jù)的主要方法是使用該FacetGrid.map()方法。 # 為其提供繪圖功能以及要繪制的數(shù)據(jù)框中的變量名稱。讓我們使用直方圖來 # 查看每個(gè)子集中tip的分布。 g = sns.FacetGrid(tips, col="time") g.map(plt.hist, "tip");
g = sns.FacetGrid(tips, col="sex", hue="smoker",col_wrap=2) g.map(plt.scatter, "total_bill", "tip", alpha=0.8) g.add_legend(); # 此功能將繪制圖形并注釋軸,希望一步生成完成的繪圖。要?jiǎng)?chuàng)建關(guān)系圖, # 只需傳遞多個(gè)變量名稱。您還可以提供關(guān)鍵字參數(shù),這些參數(shù)將傳遞給 # 繪圖函數(shù),看看col_wrap的功能
g = sns.FacetGrid(tips, col="sex", hue="smoker",col_wrap=1) g.map(plt.scatter, "total_bill", "tip", alpha=0.8) g.add_legend(); # 此時(shí)col_wrap=1 ,說明col_wrap是限制網(wǎng)格中圖的列的個(gè)數(shù)的
# 可以單獨(dú)傳遞類構(gòu)造函數(shù)改變網(wǎng)格外觀
g = sns.FacetGrid(tips, row="smoker", col="time",
margin_titles=True)
g.map(sns.regplot, "size", "total_bill", color="red",
fit_reg=False, x_jitter=.2);
# margin_titles=True的作用是把標(biāo)題寫到側(cè)面,
# fit_reg=False關(guān)閉回歸,我們下面看看關(guān)閉效果
g = sns.FacetGrid(tips, row="smoker", col="time",
margin_titles=False)
g.map(sns.regplot, "size", "total_bill", color="red",
fit_reg=True, x_jitter=.2);
# 關(guān)閉margin_titles=False,打開fit_reg=True
# margin_titles打開的好處是可以讓人很輕松的看明白圖的差別
# margin_titlesmatplotlib API未正式支持,并且在所有情況下都可能 # 無法正常工作。特別是,它目前不能與位于繪圖之外的圖例一起使用。 # 通過 height、aspect提供每個(gè)面的高度以及縱橫比來設(shè)置圖形的大小 g = sns.FacetGrid(tips, col="day", height=4, aspect=.5) g.map(sns.barplot, "sex", "total_bill");
# facet的默認(rèn)排序源自DataFrame中的信息。如果用于定義構(gòu)面的變量具有
# 分類類型,則使用類別的順序。否則,facet將按照類別級(jí)別的出現(xiàn)順序排列。
# 但是,可以使用適當(dāng)?shù)?_order參數(shù)指定任何構(gòu)面尺寸的順序
ordered_days = tips.day.value_counts().index
g = sns.FacetGrid(tips, row="day", row_order=ordered_days,
height=1.7, aspect=4,)
g.map(sns.distplot, "total_bill", hist=False, rug=True);
繪制成對(duì)數(shù)據(jù)關(guān)系
PairGrid還允許您使用相同的繪圖類型快速繪制小子圖的網(wǎng)格,以可視化每個(gè)
子圖中的數(shù)據(jù)。在一個(gè)PairGrid中,每個(gè)行和列都分配給不同的變量,因此結(jié)果
圖顯示數(shù)據(jù)集中的每個(gè)成對(duì)關(guān)系。這種情節(jié)有時(shí)被稱為“散點(diǎn)圖矩陣”,因?yàn)檫@是
顯示每種關(guān)系的最常用方式,但PairGrid不限于散點(diǎn)圖。
理解a FacetGrid和a 之間的差異很重要PairGrid。在前者中,
每個(gè)方面都表現(xiàn)出以不同級(jí)別的其他變量為條件的相同關(guān)系。在后者中,
每個(gè)圖顯示不同的關(guān)系(盡管上三角和下三角將具有鏡像圖)。使用
PairGrid可以為您提供數(shù)據(jù)集中有趣關(guān)系的非常快速,非常高級(jí)的摘要。
該類的基本用法非常相似FacetGrid。首先初始化網(wǎng)格,然后將繪圖函數(shù)
傳遞給map方法,并在每個(gè)子圖上調(diào)用它。還有一個(gè)伴侶功能,pairplot()
它可以為更快的繪圖提供一些靈活性
iris = sns.load_dataset("iris")
# 該數(shù)據(jù)大家應(yīng)該很熟悉了,就不看數(shù)據(jù)了
g = sns.PairGrid(iris)
g.map(plt.scatter);
# 可以在對(duì)角線上繪制不同的函數(shù),以顯示每列中變量的單變量分布。 # 但請(qǐng)注意,軸刻度不會(huì)與該圖的計(jì)數(shù)軸或密度軸對(duì)應(yīng)。 g = sns.PairGrid(iris) g.map_diag(plt.hist) g.map_offdiag(plt.scatter);
# 使用此圖的一種非常常見的方法是通過單獨(dú)的分類變量對(duì)觀察結(jié)果進(jìn)行著色。 # 例如,iris數(shù)據(jù)集對(duì)三種不同種類的鳶尾花中的每一種都有四種測(cè)量值, # 因此您可以看到它們之間的差異。 g = sns.PairGrid(iris, hue="species") g.map_diag(plt.hist) g.map_offdiag(plt.scatter) g.add_legend();
# 也可以在上三角和下三角中使用不同的函數(shù)來強(qiáng)調(diào)關(guān)系的不同方面。 g = sns.PairGrid(iris) g.map_upper(plt.scatter) g.map_lower(sns.kdeplot,color='red') g.map_diag(sns.kdeplot, lw=2, legend=False);
# PairGrid很靈活,但要快速查看數(shù)據(jù)集,使用pairplot()可以更容易。 # 此功能默認(rèn)使用散點(diǎn)圖和直方圖,但會(huì)添加一些其他類型 # (目前,您還可以繪制對(duì)角線上的回歸圖和對(duì)角線上的KDE)。 sns.pairplot(iris, hue="species", height=2.5);
heatmap - 熱度圖
圖形變化用顏色趨勢(shì)表現(xiàn)出來的形式 - 熱度圖
指定取值區(qū)間 - vim/vmax
未指定的時(shí)候自動(dòng)會(huì)根據(jù)數(shù)據(jù)集中的最大最小值作為兩極
指定中心數(shù)據(jù) - center
指定一個(gè)中心數(shù)據(jù), 其上或者其下顏色差異都很大,
航班示例
利用函數(shù)pivot 對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理, 然后轉(zhuǎn)換為熱量圖
顯示數(shù)字 - annot, fmt
設(shè)置annot=True 表示顯示數(shù)字,設(shè)置fmt="d" 指定格式, 這里指定 "d" 是比較好的選擇, 默認(rèn)不指定則會(huì)顯示亂碼較為難以觀察 (默認(rèn)科學(xué)計(jì)數(shù)法)
指定色格間距 -linewidths
默認(rèn)的色格之間都是都沒有間距的, 指定此屬性后可設(shè)置間距, 加間距看著更舒服點(diǎn)
指定調(diào)色板 - cmap
調(diào)色板的選擇也可以指定
隱藏色盤指標(biāo) - cbar
設(shè)置cbar=False 則可以隱藏, 但是不方便觀察, 不知道指標(biāo)區(qū)間了, 酌情使用
總結(jié)
- 上一篇: 海盗中间件:美团服务体验平台对接业务数据
- 下一篇: 信用卡转账到银行卡怎么转?有手续费怎么算