Seaborn 简明教程

Seaborn - Facet Grid

探索中等维度数据的实用方法是,根据数据集的不同子集绘制同一图形的多个实例。

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

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

Plotting Small Multiples of Data Subsets

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

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

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

这些变量应该是分类变量,并且每个变量级别的变量将用于沿着该轴的切面。

Example

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()

Output

graphs

在上述示例中,我们刚刚初始化了 facetgrid 对象,它不会绘制任何内容。

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

Example

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()

Output

differentiation

由于 col 参数,绘图的数量为多个。我们在之前的章节中讨论过 col 参数。

要制作关系图,请传递多个变量名称。

Example

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()

Output

ratio