seaborn是一个建立在matplot之上,可用于制作丰富和非常具有吸引力统计图形的Python库。Seaborn库旨在将可视化作为探索和理解数据的核心部分,有助于帮人们更近距离了解所研究的数据集。无论是在kaggle官网各项算法比赛中,还是互联网公司的实际业务数据挖掘场景中,都有它的身影。
可视化所需的包与数据导入:
import numpy as np
import pandas as pd
import atplotlib.pyplot as plt
import seaborn as sns
data= pd.read_csv('data.csv')
data.head() # 显示数据结构
Out[14]:
price model name bodyType
0 1850 30.0 736 1.0
1 3600 40.0 2262 2.0
2 6222 115.0 14874 1.0
3 2400 109.0 71865 0.0
4 5200 110.0 111080 1.0
注:本例数据是price与model,name,bodyType这几个属性之间的分析。
统计各变量之间的相关系数
data.corr() #显示所有变量之间的相关系数
Out[16]:
price model name bodyType
price 1.000000 0.136932 0.002030 0.250678
model 0.136932 1.000000 0.016071 0.205892
name 0.002030 0.016071 1.000000 0.017864
bodyType 0.250678 0.205892 0.017864 1.000000
data.corr()['price'] #仅显示tip与其它变量的相关系数
Out[17]:
price 1.000000
model 0.136932
name 0.002030
bodyType 0.250678
Name: price, dtype: float64
data['price'].corr(data['model'])
Out[18]: 0.13693212204374772
相关性图
sns.pairplot(data) #这个数据量太大了,规律也不明显,大概看看样子吧
sns.pairplot(data,hue='bodyType') # 相关性图,和某一列的关系
sns.heatmap(data.corr()) # 相关性热力图
sns.clustermap(data.corr()) #分层相关性热力图

单个属性的分布
sns.distplot(data['price'])
sns.distplot(data['price'],kde=False)
统计某单属性的分布
sns.countplot(x='bodyType',data=data)
两两属性的相关性图
sns.jointplot(x='bodyType',y='price',data=data)
两个限定表现形式的写法
sns.jointplot(x = 'bodyType', y = 'price', data = data,kind = 'reg')
sns.jointplot(x = 'bodyType', y = 'price', data = data,kind = 'kde')
箱型图统计
sns.boxplot(x='bodyType',y='price',data=data)
箱型图的含义:
sns.boxplot(x = 'bodyType', y= 'price', data = data, hue = 'sex') # 某个属性的统计,这里假定还有一个sex的属性,分为男性和女性。那么最终的箱型图在上图基础上每一个bodyType都有两个分别是男性和女性的统计。