官方文档链接:https://www.cntofu.com/book/172/docs/32.md
一、函数
class seaborn.FacetGrid(data, row=None, col=None, hue=None, col_wrap=None, sharex=True, sharey=True, height=3, aspect=1, palette=None, row_order=None, col_order=None, hue_order=None, hue_kws=None, dropna=True, legend_out=True, despine=True, margin_titles=False, xlim=None, ylim=None, subplot_kws=None, gridspec_kws=None, size=None)
用于绘制条件关系的多图网格
基本工作流程是使用数据集和用于构造网格的变量初始化FacetGrid对象。然后,通过调用 FacetGrid.map() 或FacetGrid.map_dataframe(),可以将一个或多个绘图函数应用于每个子集。最后,可以使用其他方法调整绘图,以执行更改轴标签、使用不同刻度或添加图例等操作
二、参数
data
:DataFrame数据。
整洁的(“长形式”)dataframe数据,其中每一列是一个变量,每一行是一个观察实例。
row, col, hue
:字符串。
定义数据子集的变量,这些变量将在网格的不同方面绘制。请参阅*_order参数以控制此变量的级别顺序。
col_wrap
:整形数值,可选参数。
以此参数值来限制网格的列维度,以便列面跨越多行。与row面不兼容。
share{x,y}
:布尔值,‘col’ 或 'row’可选
如果为true,则跨列共享y轴或者跨行共享x轴。
height
:标量,可选参数。
每个图片的高度设定(以英寸为单位)。另见:aspect
aspect
:标量,可选参数。
每个图片的纵横比,因此aspect * height给出每个图片的宽度,单位为英寸。
palette
:调色板名称,列表或字典,可选参数。
用于色调变量的不同级别的颜色。应为color_palette()可以解释的参数,或者是将色调级别映射到matplotlib颜色的字典。
{row,col,hue}_order
:列表,可选参数。
对所给命令级别进行排序。默认情况下,这将是在数据中显示的级别,或者,如果变量是pandas分类,则为类别顺序。
hue_kws
:参数-列表值的映射字典
插入到绘图调用中的其他关键字参数,使得其他绘图属性在色调变量的级别上有所不同(例如散点图中的标记)。
legend_out
:布尔值,可选参数。
如果为True,则图形尺寸将被扩展,图例将绘制在中间右侧的图形之外。
despine
:布尔值,可选参数。
从图中移除顶部和右侧边缘框架。
margin_titles
:布尔值,可选参数。
如果为True,则行变量的标题将绘制在最后一列的右侧。此选项是实验性的,可能无法在所有情况下使用。
{x, y}lim
:元组,可选参数。
每个图片上每个轴的限制(仅当share {x,y}为True时才相关)。
subplot_kws
:字典,可选参数。
传递给matplotlib subplot(s)方法的关键字参数字典。
gridspec_kws
:字典,可选参数。
传递给matplotlib的gridspec模块(通过plt.subplots)的关键字参数字典。需要matplotlib> = 1.4,如果col_wrap不是None,则忽略它。
三、实例
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
d = {'col1': list(range(0,10,1)), 'col2':list(range(10,20,1)),'col3':list(range(20,30,1))}
data = pd.DataFrame(d)
data
m = pd.melt(data)
m
g = sns.FacetGrid(m, col="variable", col_wrap=2, sharex=False, sharey=False)
g = g.map(sns.distplot, "value")
sns.distplot
横轴–变量可取的值
纵轴–变量取该值的概率