Seaborn Facet Grid


探索中等维数据的有用方法是在数据集的不同子集上绘制同一图的多个实例。

这种技术通常被称为“格子”或“格子”绘图,它与“小倍数”的概念有关。

要使用这些功能,您的数据必须位于Pandas DataFrame中。

绘制小数倍的数据子集

在上一章中,我们已经看到了FacetGrid示例,其中FacetGrid类有助于使用多个面板在数据集的子集中分别显示一个变量的分布以及多个变量之间的关系。

FacetGrid最多可以绘制三维 - 行,列和色调。前两个与得到的轴阵列有明显的对应关系;将色调变量视为沿深度轴的第三个维度,其中不同的级别用不同的颜色绘制。

FacetGrid 对象将数据 作为输入,并将变量的名称形成网格的行,列或色调维度。

变量应该是分类的,并且变量的每个级别的数据将用于沿该轴的小平面。

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
plt.show()

输出

图表

在上面的例子中,我们刚刚初始化了 facetgrid 对象,它不会在它们上面绘制任何东西。

在此网格上可视化数据的主要方法是使用 FacetGrid.map() 方法。让我们使用直方图来查看每个子集中的提示分布。

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
g.map(plt.hist, "tip")
plt.show()

输出

区别

由于参数col,绘图的数量不止一个。我们在前面的章节中讨论了col参数。

要创建关系图,请传递多个变量名称。

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "sex", hue = "smoker")
g.map(plt.scatter, "total_bill", "tip")
plt.show()

输出

比