Python-Seaborn繪製圖形

在這裏插入圖片描述
一、Seaborn特點
Seaborn是在matplotlib基礎上進行更高級的API封裝,常在繪製統計圖形時使用。

二、加載數據構建Seaborn圖像並設置主題格式
可以使用sns.load_dataset()函數來加載內置的Seaborn數據集,利用sns.set()來設置主題格式。
Seaborn有五個預設的主題:darkgrid,whitegrid,dark,white,ticks,默認darkgrid。
sns.set(style=‘darkgrid’,context=‘notebook’,palette=‘muted’)

#配置環境
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from scipy.stats import *
#主題格式設置
sns.set(style='darkgrid',context='notebook',palette='muted')

#加載數據
tipsDf=sns.load_dataset('tips')
sns.boxplot(x='sex',y='total_bill',hue='smoker',data=tipsDf)

在這裏插入圖片描述

三、繪製各類Seaborn圖像
displot()/kdeplot()/boxplot()/jointplot()/heatplot()/pairplot()/FacetGrid()等用法
常見參數:
kde:密度曲線
hist:直方圖
shade:陰影
rug:邊際毛毯
cumulative:累加
fit:擬合曲線
color:設置顏色
hue:色相(分類)
hist_kws, kde_kws, rug_kws, fit_kws參數接收字典類型,可以自行定義更多高級的樣式

1.分佈/密度:displot()及kdeplot()
distplot(分佈)以及kdeplot(概率密度函數)

#通:sns.kdeplot(Df['連續變量'],shade=True,rug=True)
irisDf=sns.load_dataset('iris')
plt.subplot(1,2,1)
sns.distplot(irisDf['petal_length'],kde=True,rug=True) #kde密度曲線 rug邊際毛毯
plt.subplot(1,2,2)
sns.kdeplot(irisDf['petal_length'],shade=True) #shade陰影

在這裏插入圖片描述
分佈圖distplot()

#通:sns.distplot(Df['連續變量'],kde=True,hist=True,rug=True,color='',kde_kws={'shade':True},fit=norm)
plt.figure(figsize=(7,7))
plt.subplot(2,2,1)
sns.distplot(irisDf['sepal_length'],kde=False,color='b')
plt.subplot(2,2,2)
sns.distplot(irisDf['sepal_length'],hist=False,rug=True,color='r',fit=norm)
plt.subplot(2,2,3)
sns.distplot(irisDf['sepal_length'],hist=False,kde_kws={'shade':True})
plt.subplot(2,2,4)
sns.distplot(irisDf['sepal_length'],color='m')
plt.show()

在這裏插入圖片描述
二元kde圖像:kdeplot()

#二元kde圖像:sns.kdeplot(con_var1,con_var2,cbar=True,shade=False)
x=np.random.randn(100)
y=np.random.randn(100)
sns.kdeplot(x,y,cbar=True)

在這裏插入圖片描述

2.箱型圖:boxplot()

#通:sns.boxplot(x='',y='',data=Df,hue='')
sns.boxplot(x='species',y='sepal_length',data=irisDf)
plt.show()

在這裏插入圖片描述

#箱型圖2
#通:sns.類型(x='',y='',data=Df,hue='')
tipsDf=sns.load_dataset('tips')
sns.boxplot(x='sex',y='total_bill',hue='smoker',data=tipsDf)

在這裏插入圖片描述

3.聯合分佈圖:joinplot()
兩個連續變量之間關係:Pearson相關係數以及假設檢驗參數P值

#通:sns.joinplot(x='',y='',data=Df,kind='reg')
tipsDf=sns.load_dataset('tips')
plt.figure(figsize=[7,7])
sns.jointplot('total_bill','tip',data=tipsDf,kind='reg')

在這裏插入圖片描述
擴展:
seaborn.regplot
Seaborn-04-Jointplot兩變量圖
4.多變量圖:pairplot()
seaborn.pairplot(data, hue=None, hue_order=None, palette=None, vars=None, x_vars=None, y_vars=None, kind=‘scatter’, diag_kind=‘hist’, markers=None, size=2.5, aspect=1, dropna=True, plot_kws=None, diag_kws=None, grid_kws=None)
參數:
vars : 與data使用,否則使用data的全部變量。參數類型:numeric類型的變量list。
{x, y}_vars : 與data使用,否則使用data的全部變量。參數類型:numeric類型的變量list。
dropna : 是否剔除缺失值。參數類型:boolean, optional
kind : {‘scatter’, ‘reg’}, optional Kind of plot for the non-identity relationships.
diag_kind : {‘hist’, ‘kde’}, optional。Kind of plot for the diagonal subplots.
size : 默認 6,圖的尺度大小(正方形)。參數類型:numeric
hue : 使用指定變量爲分類變量畫圖。參數類型:string (變量名)
hue_order : list of strings Order for the levels of the hue variable in the palette
palette : 調色板顏色
markers : 使用不同的形狀。參數類型:list
aspect : scalar, optional。Aspect * size gives the width (in inches) of each facet.
{plot, diag, grid}_kws : 指定其他參數。參數類型:dicts

#sns.pairplot(Df,var=['con_var1','con_var2','con_var3'],hue='dis_var')
#或sns.pairplot(Df,x_vars=['con_var1','con_var2','con_var3'],y_vars=['dis_var1','dis_var2'],plot_kws={'alpha':0.2})  #plot_kws設定離散點的大小
tipsDf=sns.load_dataset('tips')
sns.pairplot(tipsDf,vars=['total_bill','tip'],hue='time')

在這裏插入圖片描述

irisDf=sns.load_dataset('iris')
sns.pairplot(irisDf,vars=['sepal_length','sepal_width'],hue='species')

在這裏插入圖片描述
三、Seaborn-05-Pairplot多變量圖

5.FacetGrid()格點圖與其他類型圖搭配使用
基本流程是使用數據集和用於構造網格的變量初始化FacetGrid對象。然後,通過調用FacetGrid.map()或FacetGrid.map_dataframe(),可以將一個或多個繪圖函數應用於每個子集。

#sns.FacetGrid()與直方圖搭配使用
tipsDf=sns.load_dataset('tips')
tipsGraph=sns.FacetGrid(tipsDf,col='time',row='smoker')
tipsGraph=tipsGraph.map(plt.hist,'total_bill',color='r')
plt.show()

在這裏插入圖片描述

#sns.FacetGrid()與核概率密度圖搭配使用
tipsGrap2=sns.FacetGrid(tipsDf,col='time',row='smoker')
tipsGrap2.map(sns.kdeplot,'total_bill',shade=True)

在這裏插入圖片描述

#sns.FacetGrid()與電線圖搭配使用
e = sns.FacetGrid(data1, col = 'Embarked')
e.map(sns.pointplot, 'Pclass', 'Survived', 'Sex', ci=95.0, palette = 'deep')
e.add_legend()

在這裏插入圖片描述
seaborn.FacetGrid()的使用

6.熱力圖:heatplot()

#熱力圖
#sns.heatmap(Df)
plt.figure(figsize=[7,7])
carDf=sns.load_dataset('car_crashes')
carCorDf=carDf.corr()
sns.heatmap(carCorDf,annot=True,linewidths=.5,cbar=True)
plt.title('Heatmap on Correlation',fontsize=15,color='Black')
plt.xticks(rotation=45)

在這裏插入圖片描述

在這裏插入圖片描述

參考:
Seaborn入門系列(一)——kdeplot和distplot
Python數據可視化—seaborn簡介和實例
Python數據可視化(-)Seaborn介紹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章