Python的seaborn库(图比较炫)
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/fenfenxhf/article/details/82859620
1.概念
seaborn就是在matplotlib基礎(chǔ)上面的封裝,方便直接傳參數(shù)調(diào)用
2.整體布局import seaborn as sns
sns.set_style("whitegrid") #橫坐標(biāo)有標(biāo)線,縱坐標(biāo)沒(méi)有標(biāo)線,背景白色
sns.set_style("darkgrid") #默認(rèn),橫縱坐標(biāo)都有標(biāo)線,組成一個(gè)一個(gè)格子,背景稍微深色
sns.set_style("dark")#背景稍微深色,沒(méi)有標(biāo)線線
sns.set_style("white")#背景白色,沒(méi)有標(biāo)線線
sns.set_style("ticks") #xy軸都有非常短的小刻度
sns.despine(offset=30,left=True) #去掉上邊和右邊的軸線,offset=30表示距離軸線(x軸)的距離,left=True表示左邊的軸保留
1
2
3
4
5
6
3.子圖的整體布局
定義一個(gè)數(shù)據(jù)
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
def sinplot(flip=1): #自定義一個(gè)函數(shù)
?? ?x = np.linspace(0,14,100) #0-14取100個(gè)點(diǎn)
?? ?for i in range(1,7): #畫(huà)了7條線
?? ??? ?plt.plot(x,np.sin(x + i *0.5) * (7 - i) * flip) #sin函數(shù)
?? ?plt.show()
sinplot()
1
2
3
4
5
6
7
8
9
10
11
12
在不同的圖畫(huà)不同的風(fēng)格
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
def sinplot(flip=1): #自定義一個(gè)函數(shù)
?? ?x = np.linspace(0,14,100) #0-14取100個(gè)點(diǎn)
?? ?for i in range(1,7):
?? ??? ?plt.plot(x,np.sin(x + i *0.5) * (7 - i) * flip)
?? ?#plt.show()
#sinplot()
with sns.axes_style("darkgrid"): #with里面的用一種背景風(fēng)格
?? ?plt.subplot(211)
?? ?sinplot()
plt.subplot(212)
sinplot(-1)
plt.show()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
4.調(diào)色板
默認(rèn)顏色主題
current_palette = sns.color_palette()
sns.palplot(current_palette)
plt.show()
1
2
3
當(dāng)需求顏色主題比默認(rèn)的要多的時(shí)候,可以用圓形畫(huà)板
current_palette = sns.color_palette("hls",12) ?#就是這里穿參數(shù),一般使用“hls”,l是亮度,s是飽和度,12表示12種顏色
sns.palplot(current_palette)
plt.show()
1
2
3
自定義了顏色之后怎么使用呢?
current_palette = sns.color_palette("hls",12)
data = np.random.normal(size=(20,12)) + np.arange(12) / 2 #隨機(jī)生成的數(shù)據(jù)
sns.boxplot(data=data,palette=current_palette) #使用顏色就是傳遞參數(shù)給palette
plt.show()
1
2
3
4
5
還可以生成顏色對(duì),比如說(shuō)一共4對(duì)數(shù)據(jù),我們希望每對(duì)數(shù)據(jù)的顏色相近
current_palette = sns.color_palette("Paired",12)?
sns.palplot(current_palette)
plt.show()
1
2
3
連續(xù)畫(huà)板
current_palette = sns.color_palette("Blues") #直接傳顏色,有淺到深
#current_palette = sns.color_palette("Blues_r") ?#有深到淺
sns.palplot(current_palette)
plt.show()
1
2
3
4
5
顏色線性變化:cubehelix_palette()調(diào)色板
current_palette = sns.color_palette("cubehelix",8)
sns.palplot(current_palette)
plt.show()
1
2
3
light_palette()和dark_palette()調(diào)用定制連續(xù)調(diào)色板
sns.palplot(sns.light_palette("green"))
plt.show()
1
2
5.單變量的分析繪圖(當(dāng)我們拿到數(shù)據(jù)的時(shí)候需要先分析數(shù)據(jù))
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats,integrate
import pandas as pd
x = np.random.normal(size=100) #隨機(jī)生成100個(gè)數(shù)據(jù)
sns.distplot(x,bins=20,kde=False,fit=stats.gamma) #kde是需不需要計(jì)算核密度,bins是多少個(gè)小柱形,fit=stats.gamma看圖形變化的趨勢(shì),如圖黑色的曲線
plt.show()
1
2
3
4
5
6
7
8
9
6.散點(diǎn)圖:畫(huà)特征和特征之間的關(guān)系可以用散點(diǎn)圖
sns.jointplot(x="x",y="y",data=dt)
1
sns.jointplot(x="x",y="y",kind="hex",data=dt) #hex就是可以畫(huà)出當(dāng)數(shù)據(jù)量很大時(shí),我們可以通過(guò)顏色的差異來(lái)看看哪一塊數(shù)據(jù)量比較多
1
7.如果特征比較多可以用sns.pairplot(data)來(lái)畫(huà)特征和特征之間的關(guān)系
iris = sns.load_dataset("iris") #導(dǎo)入鳶尾花數(shù)據(jù)集
sns.pairplot(iris)
plt.show() #直方圖是單變量的分析,散點(diǎn)圖是特征之間的關(guān)系
1
2
3
8.用seaborn進(jìn)行回歸模型的畫(huà)圖sns.regplot() 或者sns.lmplot
tips = sns.load_dataset("tips") #導(dǎo)入tips數(shù)據(jù)集
sns.regplot(x="total_bill",y="tip",data=tips) #畫(huà)回歸圖
plt.show()
1
2
3
9.畫(huà)某個(gè)特征中不同屬性的值sns.stripplot()
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats,integrate
import pandas as pd
iris = sns.load_dataset("iris")#導(dǎo)入鳶尾花數(shù)據(jù)集
tips = sns.load_dataset("tips") #導(dǎo)入tips數(shù)據(jù)集
titanic = sns.load_dataset("titanic") #導(dǎo)入泰坦的數(shù)據(jù)集
sns.stripplot(x="day",y="total_bill",data=tips,jitter=True)#jitter是數(shù)據(jù)點(diǎn)可以稍微偏離一些,這樣數(shù)據(jù)量大的時(shí)候可以避免畫(huà)的點(diǎn)全部集中在一起看不清
plt.show()
1
2
3
4
5
6
7
8
9
10
11
10.畫(huà)某個(gè)特征中不同屬性的數(shù)據(jù)單獨(dú)畫(huà)出來(lái)sns.FacetGrid()
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats,integrate
import pandas as pd
tips = sns.load_dataset("tips") #導(dǎo)入tips數(shù)據(jù)集
g = sns.FacetGrid(tips,col="sex",hue="smoker") #將sex這列的數(shù)據(jù)按照不同的屬性分開(kāi)畫(huà),同時(shí)加入條件是不是抽煙的
g.map(plt.scatter,"total_bill","tip")
g.add_legend() #顯示圖例
plt.show()
1
2
3
4
5
6
7
8
9
10
11
☆持續(xù)更新
————————————————
版權(quán)聲明:本文為CSDN博主「fenfenxhf」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/fenfenxhf/article/details/82859620
總結(jié)
以上是生活随笔為你收集整理的Python的seaborn库(图比较炫)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1l等于多少斤酒(1L等于多少斤)
- 下一篇: 邯郸手机银行怎么开通转账(手机银行怎么开