数据挖掘中的图形可视化Seaborn最全合集快速查询

内容概览

一、Seaborn的介绍

Seaborn是一个基于Matplotlib的数据可视化库。它用于绘制有吸引力的且信息丰富的统计图形。

seaborn与Matplotlib进行比较

Matplotlib的不足

1、Matplotlib的不足:

  • 图表不够美观
  • 数据分析的时候需要的条件太多
  • 和pandas的结合一般

Seaborn的优势

2、Seaborn的优势:

  • 可以绘制高颜值的图表
  • 专门为数据分析设计的可视化库
  • 对于pandas的兼容兼容性非常好

Seaborn的图表种类

Seaborn的图表如下:

分类图:柱状图barplot、箱图boxplot、小提琴图violinplot、散布图(stripplot、swarmplot)、分面网格catplot

关联图:散布图scatterplot、线图lineplot、分面网格relplot

分布图:单变量分布图distplot、核密度图kdeplot

矩阵图:热力图heatmap、聚类图clustermap

回归图:线性回归图regplot、分面网格线性回归图lmplot

二、Seaborn的内置数据集

sns.load_dataset()函数可以加载内部的数据集,返回一个DataFrame对象:

sns.load_dataset(name,cache=True,data_home,**kwages)

  • name是数据集的名称
  • cache是否缓存
  • data_home只得是存储数据集的目录(默认在当前的home目录下,seaborn-data)

数据集:https://github.com/mwaskom/seaborn-data

获取数据集的名字

我们可以通过sns.get_dataset_names()函数获取数据集的名称

#获取名字
sns.get_dataset_names()

import seaborn as sns
sns.load_dataset('tips').head()#可以直接下载,如果下载不下来,就手动下载放在家目录下面

tips数据集特征说明:

  • total_bill:餐费的金额
  • tip:小费
  • sex:服务生的性别
  • smoker:服务生吸不吸烟
  • day:星期几吃的饭
  • time:吃饭的时间(中午,晚上)
  • size:聚餐的人数

三、Seaborn的风格设置

在matplotlib中我们需要导入style子库,通过控制子库的全局样式风格,那么sns中控制起来比较简单。

  • plt:style.use(‘fivethirtyeight’)
  • sns.set_style()

set_style()的第一个参数

第一个参数是控制风格:

  • darkgrid:暗网格背景
  • whitegrid:白网格背景
  • dark:暗色调背景
  • white:白色背景
  • ticks:带有刻度的背景

尝试sns不同的背景风格

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import warnings

#忽略警告
warnings.filterwarnings('ignore')

#设置背景风格
sns.set_style('darkgrid')#暗网格背景

# sns.set_style('whitegrid')#白网格背景
# sns.set_style('dark')#暗色调背景
# sns.set_style('white')#白色背景
# sns.set_style('ticks')#带有刻度的背景


#图片的尺寸只能通过plt设置
plt.rcParams['figure.figsize'] = (8,4)

#清晰度
plt.figure(dpi=100)

X = np.arange(20)
y = np.log(X**2)

sns.scatterplot(X,y)#散布图

#控制画布边框 刻度的显示方位【重要】
sns.despine(top=True, right=True, left=False, bottom=False)
# sns.despine(top=False, right=False, left=True, bottom=True)

#保存图片
plt.savefig('./imgs/sns_scatter.png',dpi=100)

set_style()的第二个参数

在matplotlib中,我们通过rcParams['font.family']=['SimHei']来解决中文不显示问题

在Seaborn中是没有效果,只能通过set_style()的第二个参数解决。

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
import warnings

%matplotlib inline
#忽略警告
warnings.filterwarnings('ignore')

#设置背景风格
#第二个参数是一个字典类型
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})

#负号问题,显示不了负号的话这样解决
plt.rcParams['axes.unicode_minus'] = False

#图片的尺寸只能通过plt设置
plt.rcParams['figure.figsize'] = (8,4)

#清晰度
plt.figure(dpi=100)

X = np.arange(-5,5,0.1)

#在sns中还是pandas.DataFrame类型别叫好画图
data = dict(A=np.exp(-X**2),
           B=np.sin(X),
           C=X)
#强制转换成DataFrame
df = pd.DataFrame(data)

#绘制线性图
sns.lineplot(data=df)#线形图
plt.title('这里有三条线')

#保存
plt.savefig('./imgs/sns_lineplot.png',dpi=100)

调色板

两个函数

sns.palplot()

调色板需要什么颜色,可以自己去先观察,然后把颜色打印上去。

  • sns.palplot() 显示颜色
  • sns.color_palette()调色板,返回的数值是一个二维的,内维中式一组RGB
  • palette :选则什么样的颜色组合
  • n_colors :显示集中颜色
sns.color_palette()
#调用sns.palplot()画出palette的每种颜色。

sns.palplot(sns.color_palette())
sns.palplot(sns.color_palette('coolwarm'))
sns.palplot(sns.color_palette('Greens'))



#怎么查看所有的颜色呢?随便输入一个错的就能看到报错里面有所有的颜色
import seaborn as sns
import matplotlib.pyplot as plt

sns.palplot(sns.color_palette(palette='hlsfasfaf'))#故意输入一个错的,里面就是各种颜色的名字了

所有颜色的种类

##### 颜色的种类:
Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, 
BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu, GnBu_r, 
Greens, Greens_r, Greys, Greys_r, OrRd, OrRd_r, Oranges, 
Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r,
 Pastel2, Pastel2_r, PiYG, PiYG_r, PuBu, PuBuGn, PuBuGn_r, 
 PuBu_r, PuOr, PuOr_r, PuRd, PuRd_r, Purples, Purples_r, RdBu, 
 RdBu_r, RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r, RdYlGn,
  RdYlGn_r, Reds, Reds_r, Set1, Set1_r, Set2, Set2_r, Set3, 
  Set3_r, Spectral, Spectral_r, Wistia, Wistia_r, YlGn, 
 YlGnBu, YlGnBu_r, YlGn_r, YlOrBr, YlOrBr_r, YlOrRd, YlOrRd_r, 
  afmhot, afmhot_r, autumn, autumn_r, binary, binary_r, bone, 
  bone_r, brg, brg_r, bwr, bwr_r, cividis, cividis_r, cool, 
  cool_r, coolwarm, coolwarm_r, copper, copper_r, cubehelix, 
  cubehelix_r, flag, flag_r, gist_earth, gist_earth_r, 
  gist_gray, gist_gray_r, gist_heat, gist_heat_r, gist_ncar, 
  gist_ncar_r, gist_rainbow, gist_rainbow_r, gist_stern, 
  gist_stern_r, gist_yarg, gist_yarg_r, gnuplot, gnuplot2, 
  gnuplot2_r, gnuplot_r, gray, gray_r, hot, hot_r, hsv, hsv_r, 
  icefire, icefire_r, inferno, inferno_r, jet, jet_r, magma, 
  magma_r, mako, mako_r, nipy_spectral, nipy_spectral_r, 
  ocean, ocean_r, pink, pink_r, plasma, plasma_r, prism, 
  prism_r, rainbow, rainbow_r, rocket, rocket_r, seismic, 
  seismic_r, spring, spring_r, summer, summer_r, tab10, tab10
  _r, tab20, tab20_r, tab20b, tab20b_r, tab20c, tab20c_r, 
  terrain, terrain_r, viridis, viridis_r, vlag, vlag_r, 
  winter, winter_r
  
import seaborn as sns
import matplotlib.pyplot as plt

sns.palplot(sns.color_palette(palette='hls',n_colors=30))
sns.palplot(sns.color_palette(palette='rainbow',n_colors=30))
sns.palplot(sns.color_palette(palette='GnBu_r',n_colors=30))
sns.palplot(sns.color_palette(palette='spring',n_colors=30))
sns.palplot(sns.color_palette(palette='mako',n_colors=8))

四、分类图

柱状图barplot

分类图的主要作用就是将数据分开比较。

柱状图的函数

sns.barplot(x=None,y=None,hue=None,data=None,paltte=None)

柱状图的参数

  • hue参数,不同数据依据什么分类
  • data参数,制定绘制图的数据
  • palette参数,使用什么颜色
  • x、y、hue取值必须是DataFrame中的列名

图形

import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})

#读取数据集
tips = sns.load_dataset('tips')

#绘制图表
#sns中的柱状图表示的均值
sns.barplot(data=tips,x='day',y='tip',hue='sex',palette='cubehelix_r')#palette='cubehelix_r'是颜色

# hue参数,不同数据依据sex分类
# data参数,制定绘制图的数据是tips
# palette参数,使用什么颜色,hls是一种颜色,前面可以查到
# x、y、hue取值必须是DataFrame中的列名【重要】


plt.title('柱状图')

#保存
plt.savefig('./imgs/sns_tips_bar.png',dpi=100)

2、箱图

箱图是什么

箱图又叫做盒须图,是显示数据单变量(单列)分布情况的统计图。

iris数据的类别介绍

一共是150个样本,三个类别

  • sepal_length 萼片长度
  • sepal_width 萼片宽度
  • petal_length 花瓣长度
  • petal_width 花瓣宽度
  • species 标记
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})

#读取鸢尾花数据集
iris = sns.load_dataset('iris')#会读取的久一点,如果等不及,可以直接去网站下载哦,然后放在家目录下面的

sns.boxplot(data=iris,palette='hls')#hls是一种颜色,前面可以查到,查不到的话可以故意输错一个

plt.savefig('./imgs/sns_boxplot.png',dpi=100)

iris.describe()

#最小异常范围 1- 3
3.057333 - 2.5*0.435866

3.057333 + 2.5*0.435866

小提琴图violinplot

小提琴图是什么

是箱图和密度图的一种结合体。左右越宽代表数据越密集。

import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})

#读取数据集
iris = sns.load_dataset('iris')

sns.violinplot(data=iris,palette='hls')

plt.savefig('./imgs/sns_violinplot.png',dpi=100)

分类散布图

分类散布图有两种:Strip(带状图)和Swarm(锋群图)

#1.带状:描述的还是密度,点密集就是那块给的多
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

sns.stripplot(data=tips,x='day',y='tip',palette='rainbow')

plt.savefig('./imgs/sns_stripplot.png',dpi=100)

#2.蜂群:横着几个就是几个人
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

sns.swarmplot(data=tips,x='day',y='tip',palette='rainbow')

plt.savefig('./imgs/sns_swarmplot.png',dpi=100)

#3.带状和箱图
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

sns.stripplot(data=tips,x='day',y='tip',palette='rainbow')
#1.带状
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

sns.stripplot(data=tips,x='day',y='tip',palette='rainbow')
sns.boxplot(data=tips,x='day',y='tip',palette='hls')

plt.savefig('./imgs/sns_strip_box.png',dpi=100)

#4.蜂群和小提琴
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

sns.stripplot(data=tips,x='day',y='tip',palette='rainbow')
#1.带状
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

sns.swarmplot(data=tips,x='day',y='tip',palette='rainbow')
sns.violinplot(data=tips,x='day',y='tip',palette='hls')

plt.savefig('./imgs/sns_swarm_violi.png',dpi=100)

5、分类分面网格图

分面网格(FacetGrid)可以绘制多个子图,这个网格是一个大图集,又X和Y两个坐标,实际上就是一个大图包含很多的小图。

在分面网格中使用catplot函数(图级函数),下面是barplot、boxplot是轴级函数。

catplot函数参数:

  • row:在x轴中绘制的数据
  • col:在y轴中绘制的数据
  • col_wrap:在x轴上绘制的子图最大个数
  • kind:绘制的子图类型:默认的是strip
#案例一
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

sns.stripplot(data=tips,x='day',y='tip',palette='rainbow')
#1.带状
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

#time 只有两种值 中午 晚上 col='time'
sns.catplot(x='day',y='tip',data=tips,col='time',hue='sex',palette='hls',kind='box')#kind改为箱线图

plt.savefig('./imgs/cat1.png',dpi=100)

#案例二
#不加上col参数和hue,那么是一个非常普通的图形
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

sns.stripplot(data=tips,x='day',y='tip',palette='rainbow')
#1.带状
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

#time 只有两种值 中午 晚上
sns.catplot(x='day',y='tip',data=tips,palette='hls',kind='box')

plt.savefig('./imgs/cat2.png',dpi=100)

#案例三
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

sns.stripplot(data=tips,x='day',y='tip',palette='rainbow')
#1.带状
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

#col=size 吃饭的人
#col_wrap参数分列显示
#hue参数,不同数据依据什么分类
sns.catplot(x='day',y='tip',data=tips,col='size',hue='sex',palette='hls',kind='swarm',col_wrap=3)

plt.savefig('./imgs/cat3.png',dpi=100)


#案例四
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

sns.stripplot(data=tips,x='day',y='tip',palette='rainbow')
#1.带状
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})


#读取数据集
tips = sns.load_dataset('tips')

#col=size 吃饭的人
#smoker 抽烟 抽和不抽
#col_wrap参数分列显示
sns.catplot(x='day',y='tip',data=tips,row='smoker',col='time',hue='sex',palette='hls',kind='boxen')

plt.savefig('./imgs/cat4.png',dpi=100)


五、关联图

关联就是描述某个变量和宁一个变量之间的关系,包含了关联散布图和线型图

1、关联散布图

绘制函数:
sns.scatterplot(x=None,y=None,hue=None,style=None,size=None,data=None)

  • x、y是有关的两个变量数据集(一位的)
  • hue,size、style显示不同的数据集条件类别
  • data制定的数据集
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})

iris = sns.load_dataset('iris')

#我们绘制的图形是二维的,一列代表一个维度
sns.scatterplot(data=iris,x='petal_length',y='petal_width',hue='species')

plt.savefig('./imgs/sns_scatter1.png',dpi=100)

import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})

tips = sns.load_dataset('tips')

sns.scatterplot(data=tips,x='total_bill',y='tip',hue='sex',style='time',size='smoker')#大小显示smoker

#保存
plt.savefig('./imgs/sns_scatter2.png',dpi=100,size='smoker')

关联线图

绘图函数:
sns.lineplot(x=None,y=None,hue=None,data=None,style=None,size=None)

import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})

iris = sns.load_dataset('iris')

#我们绘制的图形是二维的,一列代表一个维度
sns.lineplot(data=iris,x='petal_length',y='petal_width',hue='species',palette='hls')

import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (14,7)

#设置画布的风格和设置中文
sns.set_style('darkgrid',{
   'font.sans-serif':['SimHei','Arial']})

tips = sns.load_dataset('tips')

sns.lineplot(data=tips,x='total_bill',y='tip',hue='sex',style='time',size='smoker',palette='GnBu_r')

3、散布图矩阵

散布图举证的作用是将数据集中的每一个变量之间逐个进行对比,呈现彼此之间的关系。

import seaborn as sns

iris = sns.load_dataset('iris')

sns.pairplot(data=iris,hue='species',diag_kind='kde')#设置对角为diag_kind='kde'密度图

import seaborn as sns

mpg = sns.load_dataset('mpg')

sns.pairplot(data=mpg,diag_kind='kde',hue='origin')

分面网格关联图

在分面网格中绘制关联图使用的sns.relplor()

mpg汽车耗油量数据集的特征:

  • mpg 每加仑汽***驶的英里数量
  • cylinders 气缸数量
  • displacement 排量
  • horsepower 马力
  • weight 重量
  • acceleration 加速度
  • model_year 生产年份
  • origin 原产地
  • name 车名
import seaborn as sns
import matplotlib.pyplot as plt

mpg = sns.load_dataset('mpg')

sns.relplot(data=mpg,x='displacement',y='mpg')

import seaborn as sns
import matplotlib.pyplot as plt

mpg = sns.load_dataset('mpg')

sns.relplot(data=mpg,x='displacement',y='mpg',hue='cylinders')

import seaborn as sns
import matplotlib.pyplot as plt

mpg = sns.load_dataset('mpg')

sns.relplot(data=mpg,x='displacement',y='mpg',col='cylinders',col_wrap=3)

import seaborn as sns
import matplotlib.pyplot as plt

mpg = sns.load_dataset('mpg')

sns.relplot(data=mpg,x='displacement',y='mpg',col='cylinders',row='origin')

六、其它图形

1、分布图

分布图包含了直方图和密度图

a)、直方图

在Seaborn使用distplot函数绘制,经常和密度图一起出现,dist图,统计学同没有定义

sns.distplot(a,bins=None,hist=True,kde=True)

  • a的参数是一个单变量数据
  • bins柱子之间的间隔(柱子的数量)
  • hist是否绘制直方图
  • kde是否绘制密度图
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

#高斯分布
X = np.random.normal(loc=0,scale=1,size=1000)

sns.distplot(X,color='red',bins=50)

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

#偏态分布   右偏态  正偏态
X = np.exp(np.random.normal(loc=0,scale=1,size=1000))

sns.distplot(X,color='red',bins=50)

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

#偏态分布   左偏态  负偏态
X = -np.exp(np.random.normal(loc=0,scale=1,size=1000))

sns.distplot(X,color='red',bins=50)

b)、密度图

密度图(kernel density)kde核密度

图形分为两种:单变量的kde和双轴KDE图形

单变量密度图
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

#偏态分布   左偏态  负偏态
X = np.random.normal(loc=0,scale=1,size=1000)

sns.kdeplot(X,color='red')

双轴KDE图/等高线图,俯瞰,颜色越深,密度越大
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

#当前的数据一共500个样本  2个特征
X = np.random.normal(loc=0,scale=1,size=1000).reshape(500,2)

sns.kdeplot(X[:,0],X[:,1],color='green',shade=True)

2、联合图

联合图将单变量的分布密度图和散布图或者是双变量的密度图结合在一起。

sns.jointplot(x,y,data=None,kind='scattter')

  • kind参数是双变量图形的,默认是绘制scatter(散步),kde(双轴密度)、reg(回归)、hex(蜂窝)
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

X = np.random.normal(loc=0,scale=1,size=1000).reshape(500,2)

sns.jointplot(X[:,0],X[:,1],color='purple')

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

X = np.random.normal(loc=0,scale=1,size=1000).reshape(500,2)

iris = sns.load_dataset('iris')

sns.jointplot(x='petal_length', y='petal_width', data=iris,color='purple',kind='reg')

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

X = np.random.normal(loc=0,scale=1,size=1000).reshape(500,2)

sns.jointplot(x='petal_length', y='petal_width', data=iris,color='purple',kind='kde')

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

X = np.random.normal(loc=0,scale=1,size=1000).reshape(500,2)

sns.jointplot(X[:,0],X[:,1],color='orange',kind='hex')

3.热力图

热力图(heatmap)是以举证的形式表现的,数据值越小颜色越深,数据越小反之,在机器学习中的分类学习,对比准确率的时候经常会使用。

sns.heatmap(data,vmin=None,vmax=None,cmap=None,annot=None)

  • vmin和vmax,图例中最大值和最下值的显示
  • cmap参数是设置颜色的
  • annot参数,注解,在每一个单元格中显示数据
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

X = np.random.normal(loc=0,scale=1,size=36).reshape(6,6)

sns.heatmap(X,annot=True)
#混淆矩阵
plt.axis('image')

4、线性回归图

线性回归图通过大量的数据找到模拟拟合线性回归的一种图形

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

iris = sns.load_dataset('iris')

sns.regplot(x='petal_length', y='petal_width', data=iris)
plt.axis('image')

5、分面网格图

通过FacetGrid绘制网格,在网格中添加子图:

第一步使用sns.FacetGrid构造函数sns.FacetGrid(data,row=None,col=None,hue=None,col_wrap=None)

第二步使用FacetGrid.map方法:FacetGrid.map(func,*args,**kwargs)

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

mpg = sns.load_dataset('mpg')

#创建网格
parent = sns.FacetGrid(mpg,col='origin')
#func只得是想要画什么图形
parent.map(sns.scatterplot,'mpg','displacement')