Python数据分析-绘图-2-Seaborn进阶绘图-7-网格图

一、FacetGrid

该函数可以绘制最多三个维度:row,col,hue。行、列和颜色。

使用数据集构造网格的变量初始化对象,可以通过调用map函数或map_dataframe函数将一个或多个绘图函数应用于每个子集,或包含在relplot,catplot,lmplot函数中。

函数:seaborn.FacetGrid

1.map函数:

FacetGrid.map

常用参数:

func 接收可调用绘图函数,表示选择的绘图函数。
args str,data中的列名,将对应数据传递给func。
kwargs 关键字参数,即func的参数。所有关键字传递给func。

2.使用FacidGrid创建网格图

import seaborn as sns
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
tips=sns.load_dataset('tips')
g=sns.FacetGrid(tips,col="time",row="smoker",hue="sex")
g=g.map(plt.plot,"total_bill")

Python数据分析-绘图-2-Seaborn进阶绘图-7-网格图_第1张图片

 x_lim,y_lim参数接收元组,当sharex,sharey为True,能为每个面的x,y轴添加限制。

g=sns.FacetGrid(tips,col="time",row="smoker",hue="sex",ylim=(10,30))
g=g.map(plt.plot,"total_bill")

Python数据分析-绘图-2-Seaborn进阶绘图-7-网格图_第2张图片

二、PairGrid 

该函数用来显示每个变量的两两关系。并且可以在对角线上显示每个变量的边缘分布。

函数:seaborn.PairGrid

常用参数:

hue_kws 接收param dict,设置每个子图绘图元素的颜色变化(如散点图的标记颜色)
vars 接收list,表示data中使用变量,否则使用所有numeric类型的变量。
{x,y}_vars list,表示选择行和列变量,即自定义图形。
dropna bool,表示是否删除含有缺失值的样本。默认为True

1.可选绘图函数

1)map:在所有区域绘制图形。

2)map_lower与map_upper函数分别在下三角和上三角区域绘制图形。

3)map_diag与map_offdiag函数分布在对角线和非对角线区域绘制图形。

2.绘制图形

diamonds=sns.load_dataset('diamonds')
g=sns.PairGrid(diamonds,vars=['carat','depth','table','price'])
g.map(plt.scatter)

Python数据分析-绘图-2-Seaborn进阶绘图-7-网格图_第3张图片

在对角线和非对角线区域分别绘制直方图和散点图:

diamonds=sns.load_dataset('diamonds')
g=sns.PairGrid(diamonds,vars=['carat','depth','table','price'])
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter)

 Python数据分析-绘图-2-Seaborn进阶绘图-7-网格图_第4张图片

可以利用hue来表示第三个类别变量,将不同类别的子集用不同颜色表示:

diamonds=sns.load_dataset('diamonds')
g=sns.PairGrid(diamonds,vars=['carat','depth','table','price'],hue='color',palette='Set3')
g.map_diag(sns.kdeplot)
g.map_offdiag(plt.scatter)

 Python数据分析-绘图-2-Seaborn进阶绘图-7-网格图_第5张图片

三、JoinGrid 

绘制单变量图和双变量图的组合。

1.plot函数先后接收绘制双变量和单变量图形的函数

tips=sns.load_dataset('tips')
g=sns.JointGrid(x="total_bill",y="tip",data=tips)
#plot函数设置双变量函数和单变量绘图函数
g.plot(sns.regplot,sns.kdeplot)

Python数据分析-绘图-2-Seaborn进阶绘图-7-网格图_第6张图片

2.plot_joint函数和plot_marginals函数分别绘制双变量图和单变量图

分别设置双变量图函数和单变量图函数,并设置参数:

#设置双变量图函数
g=g.plot_joint(sns.regplot)
#设置单变量图函数,并设置参数。
g=g.plot_marginals(sns.distplot,kde=False,hist_kws={'histtype':'step','linewidth':2,'alpha':1,'color':'y'})

Python数据分析-绘图-2-Seaborn进阶绘图-7-网格图_第7张图片

 3.ax_marg_x.func函数和ax_marg_y.func函数分别绘制x轴和y轴上的单变量图形,func为选择的绘图函数

g=g.plot_joint(plt.scatter,color='b',marker='x',edgecolor='white')
g.ax_marg_x.hist(tips['total_bill'],color='g',alpha=0.6,bins=np.arange(0,60,5),rwidth=0.96)
g.ax_marg_y.hist(tips['tip'],color='r',orientation='horizontal',alpha=0.6,bins=np.arange(0,12,1),rwidth=0.96)

Python数据分析-绘图-2-Seaborn进阶绘图-7-网格图_第8张图片

你可能感兴趣的:(数据分析,python,数据挖掘,数据可视化)