该函数可以绘制最多三个维度: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")
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")
该函数用来显示每个变量的两两关系。并且可以在对角线上显示每个变量的边缘分布。
函数: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)
在对角线和非对角线区域分别绘制直方图和散点图:
diamonds=sns.load_dataset('diamonds')
g=sns.PairGrid(diamonds,vars=['carat','depth','table','price'])
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter)
可以利用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)
绘制单变量图和双变量图的组合。
1.plot函数先后接收绘制双变量和单变量图形的函数
tips=sns.load_dataset('tips')
g=sns.JointGrid(x="total_bill",y="tip",data=tips)
#plot函数设置双变量函数和单变量绘图函数
g.plot(sns.regplot,sns.kdeplot)
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'})
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)